﻿using System;
using System.Collections.Generic;

namespace FirstFloor.Documents.Pdf.Fonts
{
    /// <summary>
    /// Maps glyph names to Unicode code points.
    /// </summary>
    internal static class GlyphList
    {
        // Taken from http://partners.adobe.com/public/developer/en/opentype/glyphlist.txt
        //
        //# Name:          Adobe Glyph List
        //# Table version: 2.0
        //# Date:          September 20, 2002
        //#
        //# See http://partners.adobe.com/asn/developer/typeforum/unicodegn.html
        //
        //

        private static Dictionary<string, char> map = LoadMap();

        private static Dictionary<string, char> LoadMap()
        {
            var map = new Dictionary<string, char>();
            map["A"] = '\u0041';
            map["AE"] = '\u00C6';
            map["AEacute"] = '\u01FC';
            map["AEmacron"] = '\u01E2';
            map["AEsmall"] = '\uF7E6';
            map["Aacute"] = '\u00C1';
            map["Aacutesmall"] = '\uF7E1';
            map["Abreve"] = '\u0102';
            map["Abreveacute"] = '\u1EAE';
            map["Abrevecyrillic"] = '\u04D0';
            map["Abrevedotbelow"] = '\u1EB6';
            map["Abrevegrave"] = '\u1EB0';
            map["Abrevehookabove"] = '\u1EB2';
            map["Abrevetilde"] = '\u1EB4';
            map["Acaron"] = '\u01CD';
            map["Acircle"] = '\u24B6';
            map["Acircumflex"] = '\u00C2';
            map["Acircumflexacute"] = '\u1EA4';
            map["Acircumflexdotbelow"] = '\u1EAC';
            map["Acircumflexgrave"] = '\u1EA6';
            map["Acircumflexhookabove"] = '\u1EA8';
            map["Acircumflexsmall"] = '\uF7E2';
            map["Acircumflextilde"] = '\u1EAA';
            map["Acute"] = '\uF6C9';
            map["Acutesmall"] = '\uF7B4';
            map["Acyrillic"] = '\u0410';
            map["Adblgrave"] = '\u0200';
            map["Adieresis"] = '\u00C4';
            map["Adieresiscyrillic"] = '\u04D2';
            map["Adieresismacron"] = '\u01DE';
            map["Adieresissmall"] = '\uF7E4';
            map["Adotbelow"] = '\u1EA0';
            map["Adotmacron"] = '\u01E0';
            map["Agrave"] = '\u00C0';
            map["Agravesmall"] = '\uF7E0';
            map["Ahookabove"] = '\u1EA2';
            map["Aiecyrillic"] = '\u04D4';
            map["Ainvertedbreve"] = '\u0202';
            map["Alpha"] = '\u0391';
            map["Alphatonos"] = '\u0386';
            map["Amacron"] = '\u0100';
            map["Amonospace"] = '\uFF21';
            map["Aogonek"] = '\u0104';
            map["Aring"] = '\u00C5';
            map["Aringacute"] = '\u01FA';
            map["Aringbelow"] = '\u1E00';
            map["Aringsmall"] = '\uF7E5';
            map["Asmall"] = '\uF761';
            map["Atilde"] = '\u00C3';
            map["Atildesmall"] = '\uF7E3';
            map["Aybarmenian"] = '\u0531';
            map["B"] = '\u0042';
            map["Bcircle"] = '\u24B7';
            map["Bdotaccent"] = '\u1E02';
            map["Bdotbelow"] = '\u1E04';
            map["Becyrillic"] = '\u0411';
            map["Benarmenian"] = '\u0532';
            map["Beta"] = '\u0392';
            map["Bhook"] = '\u0181';
            map["Blinebelow"] = '\u1E06';
            map["Bmonospace"] = '\uFF22';
            map["Brevesmall"] = '\uF6F4';
            map["Bsmall"] = '\uF762';
            map["Btopbar"] = '\u0182';
            map["C"] = '\u0043';
            map["Caarmenian"] = '\u053E';
            map["Cacute"] = '\u0106';
            map["Caron"] = '\uF6CA';
            map["Caronsmall"] = '\uF6F5';
            map["Ccaron"] = '\u010C';
            map["Ccedilla"] = '\u00C7';
            map["Ccedillaacute"] = '\u1E08';
            map["Ccedillasmall"] = '\uF7E7';
            map["Ccircle"] = '\u24B8';
            map["Ccircumflex"] = '\u0108';
            map["Cdot"] = '\u010A';
            map["Cdotaccent"] = '\u010A';
            map["Cedillasmall"] = '\uF7B8';
            map["Chaarmenian"] = '\u0549';
            map["Cheabkhasiancyrillic"] = '\u04BC';
            map["Checyrillic"] = '\u0427';
            map["Chedescenderabkhasiancyrillic"] = '\u04BE';
            map["Chedescendercyrillic"] = '\u04B6';
            map["Chedieresiscyrillic"] = '\u04F4';
            map["Cheharmenian"] = '\u0543';
            map["Chekhakassiancyrillic"] = '\u04CB';
            map["Cheverticalstrokecyrillic"] = '\u04B8';
            map["Chi"] = '\u03A7';
            map["Chook"] = '\u0187';
            map["Circumflexsmall"] = '\uF6F6';
            map["Cmonospace"] = '\uFF23';
            map["Coarmenian"] = '\u0551';
            map["Csmall"] = '\uF763';
            map["D"] = '\u0044';
            map["DZ"] = '\u01F1';
            map["DZcaron"] = '\u01C4';
            map["Daarmenian"] = '\u0534';
            map["Dafrican"] = '\u0189';
            map["Dcaron"] = '\u010E';
            map["Dcedilla"] = '\u1E10';
            map["Dcircle"] = '\u24B9';
            map["Dcircumflexbelow"] = '\u1E12';
            map["Dcroat"] = '\u0110';
            map["Ddotaccent"] = '\u1E0A';
            map["Ddotbelow"] = '\u1E0C';
            map["Decyrillic"] = '\u0414';
            map["Deicoptic"] = '\u03EE';
            map["Delta"] = '\u2206';
            map["Deltagreek"] = '\u0394';
            map["Dhook"] = '\u018A';
            map["Dieresis"] = '\uF6CB';
            map["DieresisAcute"] = '\uF6CC';
            map["DieresisGrave"] = '\uF6CD';
            map["Dieresissmall"] = '\uF7A8';
            map["Digammagreek"] = '\u03DC';
            map["Djecyrillic"] = '\u0402';
            map["Dlinebelow"] = '\u1E0E';
            map["Dmonospace"] = '\uFF24';
            map["Dotaccentsmall"] = '\uF6F7';
            map["Dslash"] = '\u0110';
            map["Dsmall"] = '\uF764';
            map["Dtopbar"] = '\u018B';
            map["Dz"] = '\u01F2';
            map["Dzcaron"] = '\u01C5';
            map["Dzeabkhasiancyrillic"] = '\u04E0';
            map["Dzecyrillic"] = '\u0405';
            map["Dzhecyrillic"] = '\u040F';
            map["E"] = '\u0045';
            map["Eacute"] = '\u00C9';
            map["Eacutesmall"] = '\uF7E9';
            map["Ebreve"] = '\u0114';
            map["Ecaron"] = '\u011A';
            map["Ecedillabreve"] = '\u1E1C';
            map["Echarmenian"] = '\u0535';
            map["Ecircle"] = '\u24BA';
            map["Ecircumflex"] = '\u00CA';
            map["Ecircumflexacute"] = '\u1EBE';
            map["Ecircumflexbelow"] = '\u1E18';
            map["Ecircumflexdotbelow"] = '\u1EC6';
            map["Ecircumflexgrave"] = '\u1EC0';
            map["Ecircumflexhookabove"] = '\u1EC2';
            map["Ecircumflexsmall"] = '\uF7EA';
            map["Ecircumflextilde"] = '\u1EC4';
            map["Ecyrillic"] = '\u0404';
            map["Edblgrave"] = '\u0204';
            map["Edieresis"] = '\u00CB';
            map["Edieresissmall"] = '\uF7EB';
            map["Edot"] = '\u0116';
            map["Edotaccent"] = '\u0116';
            map["Edotbelow"] = '\u1EB8';
            map["Efcyrillic"] = '\u0424';
            map["Egrave"] = '\u00C8';
            map["Egravesmall"] = '\uF7E8';
            map["Eharmenian"] = '\u0537';
            map["Ehookabove"] = '\u1EBA';
            map["Eightroman"] = '\u2167';
            map["Einvertedbreve"] = '\u0206';
            map["Eiotifiedcyrillic"] = '\u0464';
            map["Elcyrillic"] = '\u041B';
            map["Elevenroman"] = '\u216A';
            map["Emacron"] = '\u0112';
            map["Emacronacute"] = '\u1E16';
            map["Emacrongrave"] = '\u1E14';
            map["Emcyrillic"] = '\u041C';
            map["Emonospace"] = '\uFF25';
            map["Encyrillic"] = '\u041D';
            map["Endescendercyrillic"] = '\u04A2';
            map["Eng"] = '\u014A';
            map["Enghecyrillic"] = '\u04A4';
            map["Enhookcyrillic"] = '\u04C7';
            map["Eogonek"] = '\u0118';
            map["Eopen"] = '\u0190';
            map["Epsilon"] = '\u0395';
            map["Epsilontonos"] = '\u0388';
            map["Ercyrillic"] = '\u0420';
            map["Ereversed"] = '\u018E';
            map["Ereversedcyrillic"] = '\u042D';
            map["Escyrillic"] = '\u0421';
            map["Esdescendercyrillic"] = '\u04AA';
            map["Esh"] = '\u01A9';
            map["Esmall"] = '\uF765';
            map["Eta"] = '\u0397';
            map["Etarmenian"] = '\u0538';
            map["Etatonos"] = '\u0389';
            map["Eth"] = '\u00D0';
            map["Ethsmall"] = '\uF7F0';
            map["Etilde"] = '\u1EBC';
            map["Etildebelow"] = '\u1E1A';
            map["Euro"] = '\u20AC';
            map["Ezh"] = '\u01B7';
            map["Ezhcaron"] = '\u01EE';
            map["Ezhreversed"] = '\u01B8';
            map["F"] = '\u0046';
            map["Fcircle"] = '\u24BB';
            map["Fdotaccent"] = '\u1E1E';
            map["Feharmenian"] = '\u0556';
            map["Feicoptic"] = '\u03E4';
            map["Fhook"] = '\u0191';
            map["Fitacyrillic"] = '\u0472';
            map["Fiveroman"] = '\u2164';
            map["Fmonospace"] = '\uFF26';
            map["Fourroman"] = '\u2163';
            map["Fsmall"] = '\uF766';
            map["G"] = '\u0047';
            map["GBsquare"] = '\u3387';
            map["Gacute"] = '\u01F4';
            map["Gamma"] = '\u0393';
            map["Gammaafrican"] = '\u0194';
            map["Gangiacoptic"] = '\u03EA';
            map["Gbreve"] = '\u011E';
            map["Gcaron"] = '\u01E6';
            map["Gcedilla"] = '\u0122';
            map["Gcircle"] = '\u24BC';
            map["Gcircumflex"] = '\u011C';
            map["Gcommaaccent"] = '\u0122';
            map["Gdot"] = '\u0120';
            map["Gdotaccent"] = '\u0120';
            map["Gecyrillic"] = '\u0413';
            map["Ghadarmenian"] = '\u0542';
            map["Ghemiddlehookcyrillic"] = '\u0494';
            map["Ghestrokecyrillic"] = '\u0492';
            map["Gheupturncyrillic"] = '\u0490';
            map["Ghook"] = '\u0193';
            map["Gimarmenian"] = '\u0533';
            map["Gjecyrillic"] = '\u0403';
            map["Gmacron"] = '\u1E20';
            map["Gmonospace"] = '\uFF27';
            map["Grave"] = '\uF6CE';
            map["Gravesmall"] = '\uF760';
            map["Gsmall"] = '\uF767';
            map["Gsmallhook"] = '\u029B';
            map["Gstroke"] = '\u01E4';
            map["H"] = '\u0048';
            map["H18533"] = '\u25CF';
            map["H18543"] = '\u25AA';
            map["H18551"] = '\u25AB';
            map["H22073"] = '\u25A1';
            map["HPsquare"] = '\u33CB';
            map["Haabkhasiancyrillic"] = '\u04A8';
            map["Hadescendercyrillic"] = '\u04B2';
            map["Hardsigncyrillic"] = '\u042A';
            map["Hbar"] = '\u0126';
            map["Hbrevebelow"] = '\u1E2A';
            map["Hcedilla"] = '\u1E28';
            map["Hcircle"] = '\u24BD';
            map["Hcircumflex"] = '\u0124';
            map["Hdieresis"] = '\u1E26';
            map["Hdotaccent"] = '\u1E22';
            map["Hdotbelow"] = '\u1E24';
            map["Hmonospace"] = '\uFF28';
            map["Hoarmenian"] = '\u0540';
            map["Horicoptic"] = '\u03E8';
            map["Hsmall"] = '\uF768';
            map["Hungarumlaut"] = '\uF6CF';
            map["Hungarumlautsmall"] = '\uF6F8';
            map["Hzsquare"] = '\u3390';
            map["I"] = '\u0049';
            map["IAcyrillic"] = '\u042F';
            map["IJ"] = '\u0132';
            map["IUcyrillic"] = '\u042E';
            map["Iacute"] = '\u00CD';
            map["Iacutesmall"] = '\uF7ED';
            map["Ibreve"] = '\u012C';
            map["Icaron"] = '\u01CF';
            map["Icircle"] = '\u24BE';
            map["Icircumflex"] = '\u00CE';
            map["Icircumflexsmall"] = '\uF7EE';
            map["Icyrillic"] = '\u0406';
            map["Idblgrave"] = '\u0208';
            map["Idieresis"] = '\u00CF';
            map["Idieresisacute"] = '\u1E2E';
            map["Idieresiscyrillic"] = '\u04E4';
            map["Idieresissmall"] = '\uF7EF';
            map["Idot"] = '\u0130';
            map["Idotaccent"] = '\u0130';
            map["Idotbelow"] = '\u1ECA';
            map["Iebrevecyrillic"] = '\u04D6';
            map["Iecyrillic"] = '\u0415';
            map["Ifraktur"] = '\u2111';
            map["Igrave"] = '\u00CC';
            map["Igravesmall"] = '\uF7EC';
            map["Ihookabove"] = '\u1EC8';
            map["Iicyrillic"] = '\u0418';
            map["Iinvertedbreve"] = '\u020A';
            map["Iishortcyrillic"] = '\u0419';
            map["Imacron"] = '\u012A';
            map["Imacroncyrillic"] = '\u04E2';
            map["Imonospace"] = '\uFF29';
            map["Iniarmenian"] = '\u053B';
            map["Iocyrillic"] = '\u0401';
            map["Iogonek"] = '\u012E';
            map["Iota"] = '\u0399';
            map["Iotaafrican"] = '\u0196';
            map["Iotadieresis"] = '\u03AA';
            map["Iotatonos"] = '\u038A';
            map["Ismall"] = '\uF769';
            map["Istroke"] = '\u0197';
            map["Itilde"] = '\u0128';
            map["Itildebelow"] = '\u1E2C';
            map["Izhitsacyrillic"] = '\u0474';
            map["Izhitsadblgravecyrillic"] = '\u0476';
            map["J"] = '\u004A';
            map["Jaarmenian"] = '\u0541';
            map["Jcircle"] = '\u24BF';
            map["Jcircumflex"] = '\u0134';
            map["Jecyrillic"] = '\u0408';
            map["Jheharmenian"] = '\u054B';
            map["Jmonospace"] = '\uFF2A';
            map["Jsmall"] = '\uF76A';
            map["K"] = '\u004B';
            map["KBsquare"] = '\u3385';
            map["KKsquare"] = '\u33CD';
            map["Kabashkircyrillic"] = '\u04A0';
            map["Kacute"] = '\u1E30';
            map["Kacyrillic"] = '\u041A';
            map["Kadescendercyrillic"] = '\u049A';
            map["Kahookcyrillic"] = '\u04C3';
            map["Kappa"] = '\u039A';
            map["Kastrokecyrillic"] = '\u049E';
            map["Kaverticalstrokecyrillic"] = '\u049C';
            map["Kcaron"] = '\u01E8';
            map["Kcedilla"] = '\u0136';
            map["Kcircle"] = '\u24C0';
            map["Kcommaaccent"] = '\u0136';
            map["Kdotbelow"] = '\u1E32';
            map["Keharmenian"] = '\u0554';
            map["Kenarmenian"] = '\u053F';
            map["Khacyrillic"] = '\u0425';
            map["Kheicoptic"] = '\u03E6';
            map["Khook"] = '\u0198';
            map["Kjecyrillic"] = '\u040C';
            map["Klinebelow"] = '\u1E34';
            map["Kmonospace"] = '\uFF2B';
            map["Koppacyrillic"] = '\u0480';
            map["Koppagreek"] = '\u03DE';
            map["Ksicyrillic"] = '\u046E';
            map["Ksmall"] = '\uF76B';
            map["L"] = '\u004C';
            map["LJ"] = '\u01C7';
            map["LL"] = '\uF6BF';
            map["Lacute"] = '\u0139';
            map["Lambda"] = '\u039B';
            map["Lcaron"] = '\u013D';
            map["Lcedilla"] = '\u013B';
            map["Lcircle"] = '\u24C1';
            map["Lcircumflexbelow"] = '\u1E3C';
            map["Lcommaaccent"] = '\u013B';
            map["Ldot"] = '\u013F';
            map["Ldotaccent"] = '\u013F';
            map["Ldotbelow"] = '\u1E36';
            map["Ldotbelowmacron"] = '\u1E38';
            map["Liwnarmenian"] = '\u053C';
            map["Lj"] = '\u01C8';
            map["Ljecyrillic"] = '\u0409';
            map["Llinebelow"] = '\u1E3A';
            map["Lmonospace"] = '\uFF2C';
            map["Lslash"] = '\u0141';
            map["Lslashsmall"] = '\uF6F9';
            map["Lsmall"] = '\uF76C';
            map["M"] = '\u004D';
            map["MBsquare"] = '\u3386';
            map["Macron"] = '\uF6D0';
            map["Macronsmall"] = '\uF7AF';
            map["Macute"] = '\u1E3E';
            map["Mcircle"] = '\u24C2';
            map["Mdotaccent"] = '\u1E40';
            map["Mdotbelow"] = '\u1E42';
            map["Menarmenian"] = '\u0544';
            map["Mmonospace"] = '\uFF2D';
            map["Msmall"] = '\uF76D';
            map["Mturned"] = '\u019C';
            map["Mu"] = '\u039C';
            map["N"] = '\u004E';
            map["NJ"] = '\u01CA';
            map["Nacute"] = '\u0143';
            map["Ncaron"] = '\u0147';
            map["Ncedilla"] = '\u0145';
            map["Ncircle"] = '\u24C3';
            map["Ncircumflexbelow"] = '\u1E4A';
            map["Ncommaaccent"] = '\u0145';
            map["Ndotaccent"] = '\u1E44';
            map["Ndotbelow"] = '\u1E46';
            map["Nhookleft"] = '\u019D';
            map["Nineroman"] = '\u2168';
            map["Nj"] = '\u01CB';
            map["Njecyrillic"] = '\u040A';
            map["Nlinebelow"] = '\u1E48';
            map["Nmonospace"] = '\uFF2E';
            map["Nowarmenian"] = '\u0546';
            map["Nsmall"] = '\uF76E';
            map["Ntilde"] = '\u00D1';
            map["Ntildesmall"] = '\uF7F1';
            map["Nu"] = '\u039D';
            map["O"] = '\u004F';
            map["OE"] = '\u0152';
            map["OEsmall"] = '\uF6FA';
            map["Oacute"] = '\u00D3';
            map["Oacutesmall"] = '\uF7F3';
            map["Obarredcyrillic"] = '\u04E8';
            map["Obarreddieresiscyrillic"] = '\u04EA';
            map["Obreve"] = '\u014E';
            map["Ocaron"] = '\u01D1';
            map["Ocenteredtilde"] = '\u019F';
            map["Ocircle"] = '\u24C4';
            map["Ocircumflex"] = '\u00D4';
            map["Ocircumflexacute"] = '\u1ED0';
            map["Ocircumflexdotbelow"] = '\u1ED8';
            map["Ocircumflexgrave"] = '\u1ED2';
            map["Ocircumflexhookabove"] = '\u1ED4';
            map["Ocircumflexsmall"] = '\uF7F4';
            map["Ocircumflextilde"] = '\u1ED6';
            map["Ocyrillic"] = '\u041E';
            map["Odblacute"] = '\u0150';
            map["Odblgrave"] = '\u020C';
            map["Odieresis"] = '\u00D6';
            map["Odieresiscyrillic"] = '\u04E6';
            map["Odieresissmall"] = '\uF7F6';
            map["Odotbelow"] = '\u1ECC';
            map["Ogoneksmall"] = '\uF6FB';
            map["Ograve"] = '\u00D2';
            map["Ogravesmall"] = '\uF7F2';
            map["Oharmenian"] = '\u0555';
            map["Ohm"] = '\u2126';
            map["Ohookabove"] = '\u1ECE';
            map["Ohorn"] = '\u01A0';
            map["Ohornacute"] = '\u1EDA';
            map["Ohorndotbelow"] = '\u1EE2';
            map["Ohorngrave"] = '\u1EDC';
            map["Ohornhookabove"] = '\u1EDE';
            map["Ohorntilde"] = '\u1EE0';
            map["Ohungarumlaut"] = '\u0150';
            map["Oi"] = '\u01A2';
            map["Oinvertedbreve"] = '\u020E';
            map["Omacron"] = '\u014C';
            map["Omacronacute"] = '\u1E52';
            map["Omacrongrave"] = '\u1E50';
            map["Omega"] = '\u2126';
            map["Omegacyrillic"] = '\u0460';
            map["Omegagreek"] = '\u03A9';
            map["Omegaroundcyrillic"] = '\u047A';
            map["Omegatitlocyrillic"] = '\u047C';
            map["Omegatonos"] = '\u038F';
            map["Omicron"] = '\u039F';
            map["Omicrontonos"] = '\u038C';
            map["Omonospace"] = '\uFF2F';
            map["Oneroman"] = '\u2160';
            map["Oogonek"] = '\u01EA';
            map["Oogonekmacron"] = '\u01EC';
            map["Oopen"] = '\u0186';
            map["Oslash"] = '\u00D8';
            map["Oslashacute"] = '\u01FE';
            map["Oslashsmall"] = '\uF7F8';
            map["Osmall"] = '\uF76F';
            map["Ostrokeacute"] = '\u01FE';
            map["Otcyrillic"] = '\u047E';
            map["Otilde"] = '\u00D5';
            map["Otildeacute"] = '\u1E4C';
            map["Otildedieresis"] = '\u1E4E';
            map["Otildesmall"] = '\uF7F5';
            map["P"] = '\u0050';
            map["Pacute"] = '\u1E54';
            map["Pcircle"] = '\u24C5';
            map["Pdotaccent"] = '\u1E56';
            map["Pecyrillic"] = '\u041F';
            map["Peharmenian"] = '\u054A';
            map["Pemiddlehookcyrillic"] = '\u04A6';
            map["Phi"] = '\u03A6';
            map["Phook"] = '\u01A4';
            map["Pi"] = '\u03A0';
            map["Piwrarmenian"] = '\u0553';
            map["Pmonospace"] = '\uFF30';
            map["Psi"] = '\u03A8';
            map["Psicyrillic"] = '\u0470';
            map["Psmall"] = '\uF770';
            map["Q"] = '\u0051';
            map["Qcircle"] = '\u24C6';
            map["Qmonospace"] = '\uFF31';
            map["Qsmall"] = '\uF771';
            map["R"] = '\u0052';
            map["Raarmenian"] = '\u054C';
            map["Racute"] = '\u0154';
            map["Rcaron"] = '\u0158';
            map["Rcedilla"] = '\u0156';
            map["Rcircle"] = '\u24C7';
            map["Rcommaaccent"] = '\u0156';
            map["Rdblgrave"] = '\u0210';
            map["Rdotaccent"] = '\u1E58';
            map["Rdotbelow"] = '\u1E5A';
            map["Rdotbelowmacron"] = '\u1E5C';
            map["Reharmenian"] = '\u0550';
            map["Rfraktur"] = '\u211C';
            map["Rho"] = '\u03A1';
            map["Ringsmall"] = '\uF6FC';
            map["Rinvertedbreve"] = '\u0212';
            map["Rlinebelow"] = '\u1E5E';
            map["Rmonospace"] = '\uFF32';
            map["Rsmall"] = '\uF772';
            map["Rsmallinverted"] = '\u0281';
            map["Rsmallinvertedsuperior"] = '\u02B6';
            map["S"] = '\u0053';
            map["SF010000"] = '\u250C';
            map["SF020000"] = '\u2514';
            map["SF030000"] = '\u2510';
            map["SF040000"] = '\u2518';
            map["SF050000"] = '\u253C';
            map["SF060000"] = '\u252C';
            map["SF070000"] = '\u2534';
            map["SF080000"] = '\u251C';
            map["SF090000"] = '\u2524';
            map["SF100000"] = '\u2500';
            map["SF110000"] = '\u2502';
            map["SF190000"] = '\u2561';
            map["SF200000"] = '\u2562';
            map["SF210000"] = '\u2556';
            map["SF220000"] = '\u2555';
            map["SF230000"] = '\u2563';
            map["SF240000"] = '\u2551';
            map["SF250000"] = '\u2557';
            map["SF260000"] = '\u255D';
            map["SF270000"] = '\u255C';
            map["SF280000"] = '\u255B';
            map["SF360000"] = '\u255E';
            map["SF370000"] = '\u255F';
            map["SF380000"] = '\u255A';
            map["SF390000"] = '\u2554';
            map["SF400000"] = '\u2569';
            map["SF410000"] = '\u2566';
            map["SF420000"] = '\u2560';
            map["SF430000"] = '\u2550';
            map["SF440000"] = '\u256C';
            map["SF450000"] = '\u2567';
            map["SF460000"] = '\u2568';
            map["SF470000"] = '\u2564';
            map["SF480000"] = '\u2565';
            map["SF490000"] = '\u2559';
            map["SF500000"] = '\u2558';
            map["SF510000"] = '\u2552';
            map["SF520000"] = '\u2553';
            map["SF530000"] = '\u256B';
            map["SF540000"] = '\u256A';
            map["Sacute"] = '\u015A';
            map["Sacutedotaccent"] = '\u1E64';
            map["Sampigreek"] = '\u03E0';
            map["Scaron"] = '\u0160';
            map["Scarondotaccent"] = '\u1E66';
            map["Scaronsmall"] = '\uF6FD';
            map["Scedilla"] = '\u015E';
            map["Schwa"] = '\u018F';
            map["Schwacyrillic"] = '\u04D8';
            map["Schwadieresiscyrillic"] = '\u04DA';
            map["Scircle"] = '\u24C8';
            map["Scircumflex"] = '\u015C';
            map["Scommaaccent"] = '\u0218';
            map["Sdotaccent"] = '\u1E60';
            map["Sdotbelow"] = '\u1E62';
            map["Sdotbelowdotaccent"] = '\u1E68';
            map["Seharmenian"] = '\u054D';
            map["Sevenroman"] = '\u2166';
            map["Shaarmenian"] = '\u0547';
            map["Shacyrillic"] = '\u0428';
            map["Shchacyrillic"] = '\u0429';
            map["Sheicoptic"] = '\u03E2';
            map["Shhacyrillic"] = '\u04BA';
            map["Shimacoptic"] = '\u03EC';
            map["Sigma"] = '\u03A3';
            map["Sixroman"] = '\u2165';
            map["Smonospace"] = '\uFF33';
            map["Softsigncyrillic"] = '\u042C';
            map["Ssmall"] = '\uF773';
            map["Stigmagreek"] = '\u03DA';
            map["T"] = '\u0054';
            map["Tau"] = '\u03A4';
            map["Tbar"] = '\u0166';
            map["Tcaron"] = '\u0164';
            map["Tcedilla"] = '\u0162';
            map["Tcircle"] = '\u24C9';
            map["Tcircumflexbelow"] = '\u1E70';
            map["Tcommaaccent"] = '\u0162';
            map["Tdotaccent"] = '\u1E6A';
            map["Tdotbelow"] = '\u1E6C';
            map["Tecyrillic"] = '\u0422';
            map["Tedescendercyrillic"] = '\u04AC';
            map["Tenroman"] = '\u2169';
            map["Tetsecyrillic"] = '\u04B4';
            map["Theta"] = '\u0398';
            map["Thook"] = '\u01AC';
            map["Thorn"] = '\u00DE';
            map["Thornsmall"] = '\uF7FE';
            map["Threeroman"] = '\u2162';
            map["Tildesmall"] = '\uF6FE';
            map["Tiwnarmenian"] = '\u054F';
            map["Tlinebelow"] = '\u1E6E';
            map["Tmonospace"] = '\uFF34';
            map["Toarmenian"] = '\u0539';
            map["Tonefive"] = '\u01BC';
            map["Tonesix"] = '\u0184';
            map["Tonetwo"] = '\u01A7';
            map["Tretroflexhook"] = '\u01AE';
            map["Tsecyrillic"] = '\u0426';
            map["Tshecyrillic"] = '\u040B';
            map["Tsmall"] = '\uF774';
            map["Twelveroman"] = '\u216B';
            map["Tworoman"] = '\u2161';
            map["U"] = '\u0055';
            map["Uacute"] = '\u00DA';
            map["Uacutesmall"] = '\uF7FA';
            map["Ubreve"] = '\u016C';
            map["Ucaron"] = '\u01D3';
            map["Ucircle"] = '\u24CA';
            map["Ucircumflex"] = '\u00DB';
            map["Ucircumflexbelow"] = '\u1E76';
            map["Ucircumflexsmall"] = '\uF7FB';
            map["Ucyrillic"] = '\u0423';
            map["Udblacute"] = '\u0170';
            map["Udblgrave"] = '\u0214';
            map["Udieresis"] = '\u00DC';
            map["Udieresisacute"] = '\u01D7';
            map["Udieresisbelow"] = '\u1E72';
            map["Udieresiscaron"] = '\u01D9';
            map["Udieresiscyrillic"] = '\u04F0';
            map["Udieresisgrave"] = '\u01DB';
            map["Udieresismacron"] = '\u01D5';
            map["Udieresissmall"] = '\uF7FC';
            map["Udotbelow"] = '\u1EE4';
            map["Ugrave"] = '\u00D9';
            map["Ugravesmall"] = '\uF7F9';
            map["Uhookabove"] = '\u1EE6';
            map["Uhorn"] = '\u01AF';
            map["Uhornacute"] = '\u1EE8';
            map["Uhorndotbelow"] = '\u1EF0';
            map["Uhorngrave"] = '\u1EEA';
            map["Uhornhookabove"] = '\u1EEC';
            map["Uhorntilde"] = '\u1EEE';
            map["Uhungarumlaut"] = '\u0170';
            map["Uhungarumlautcyrillic"] = '\u04F2';
            map["Uinvertedbreve"] = '\u0216';
            map["Ukcyrillic"] = '\u0478';
            map["Umacron"] = '\u016A';
            map["Umacroncyrillic"] = '\u04EE';
            map["Umacrondieresis"] = '\u1E7A';
            map["Umonospace"] = '\uFF35';
            map["Uogonek"] = '\u0172';
            map["Upsilon"] = '\u03A5';
            map["Upsilon1"] = '\u03D2';
            map["Upsilonacutehooksymbolgreek"] = '\u03D3';
            map["Upsilonafrican"] = '\u01B1';
            map["Upsilondieresis"] = '\u03AB';
            map["Upsilondieresishooksymbolgreek"] = '\u03D4';
            map["Upsilonhooksymbol"] = '\u03D2';
            map["Upsilontonos"] = '\u038E';
            map["Uring"] = '\u016E';
            map["Ushortcyrillic"] = '\u040E';
            map["Usmall"] = '\uF775';
            map["Ustraightcyrillic"] = '\u04AE';
            map["Ustraightstrokecyrillic"] = '\u04B0';
            map["Utilde"] = '\u0168';
            map["Utildeacute"] = '\u1E78';
            map["Utildebelow"] = '\u1E74';
            map["V"] = '\u0056';
            map["Vcircle"] = '\u24CB';
            map["Vdotbelow"] = '\u1E7E';
            map["Vecyrillic"] = '\u0412';
            map["Vewarmenian"] = '\u054E';
            map["Vhook"] = '\u01B2';
            map["Vmonospace"] = '\uFF36';
            map["Voarmenian"] = '\u0548';
            map["Vsmall"] = '\uF776';
            map["Vtilde"] = '\u1E7C';
            map["W"] = '\u0057';
            map["Wacute"] = '\u1E82';
            map["Wcircle"] = '\u24CC';
            map["Wcircumflex"] = '\u0174';
            map["Wdieresis"] = '\u1E84';
            map["Wdotaccent"] = '\u1E86';
            map["Wdotbelow"] = '\u1E88';
            map["Wgrave"] = '\u1E80';
            map["Wmonospace"] = '\uFF37';
            map["Wsmall"] = '\uF777';
            map["X"] = '\u0058';
            map["Xcircle"] = '\u24CD';
            map["Xdieresis"] = '\u1E8C';
            map["Xdotaccent"] = '\u1E8A';
            map["Xeharmenian"] = '\u053D';
            map["Xi"] = '\u039E';
            map["Xmonospace"] = '\uFF38';
            map["Xsmall"] = '\uF778';
            map["Y"] = '\u0059';
            map["Yacute"] = '\u00DD';
            map["Yacutesmall"] = '\uF7FD';
            map["Yatcyrillic"] = '\u0462';
            map["Ycircle"] = '\u24CE';
            map["Ycircumflex"] = '\u0176';
            map["Ydieresis"] = '\u0178';
            map["Ydieresissmall"] = '\uF7FF';
            map["Ydotaccent"] = '\u1E8E';
            map["Ydotbelow"] = '\u1EF4';
            map["Yericyrillic"] = '\u042B';
            map["Yerudieresiscyrillic"] = '\u04F8';
            map["Ygrave"] = '\u1EF2';
            map["Yhook"] = '\u01B3';
            map["Yhookabove"] = '\u1EF6';
            map["Yiarmenian"] = '\u0545';
            map["Yicyrillic"] = '\u0407';
            map["Yiwnarmenian"] = '\u0552';
            map["Ymonospace"] = '\uFF39';
            map["Ysmall"] = '\uF779';
            map["Ytilde"] = '\u1EF8';
            map["Yusbigcyrillic"] = '\u046A';
            map["Yusbigiotifiedcyrillic"] = '\u046C';
            map["Yuslittlecyrillic"] = '\u0466';
            map["Yuslittleiotifiedcyrillic"] = '\u0468';
            map["Z"] = '\u005A';
            map["Zaarmenian"] = '\u0536';
            map["Zacute"] = '\u0179';
            map["Zcaron"] = '\u017D';
            map["Zcaronsmall"] = '\uF6FF';
            map["Zcircle"] = '\u24CF';
            map["Zcircumflex"] = '\u1E90';
            map["Zdot"] = '\u017B';
            map["Zdotaccent"] = '\u017B';
            map["Zdotbelow"] = '\u1E92';
            map["Zecyrillic"] = '\u0417';
            map["Zedescendercyrillic"] = '\u0498';
            map["Zedieresiscyrillic"] = '\u04DE';
            map["Zeta"] = '\u0396';
            map["Zhearmenian"] = '\u053A';
            map["Zhebrevecyrillic"] = '\u04C1';
            map["Zhecyrillic"] = '\u0416';
            map["Zhedescendercyrillic"] = '\u0496';
            map["Zhedieresiscyrillic"] = '\u04DC';
            map["Zlinebelow"] = '\u1E94';
            map["Zmonospace"] = '\uFF3A';
            map["Zsmall"] = '\uF77A';
            map["Zstroke"] = '\u01B5';
            map["a"] = '\u0061';
            map["aabengali"] = '\u0986';
            map["aacute"] = '\u00E1';
            map["aadeva"] = '\u0906';
            map["aagujarati"] = '\u0A86';
            map["aagurmukhi"] = '\u0A06';
            map["aamatragurmukhi"] = '\u0A3E';
            map["aarusquare"] = '\u3303';
            map["aavowelsignbengali"] = '\u09BE';
            map["aavowelsigndeva"] = '\u093E';
            map["aavowelsigngujarati"] = '\u0ABE';
            map["abbreviationmarkarmenian"] = '\u055F';
            map["abbreviationsigndeva"] = '\u0970';
            map["abengali"] = '\u0985';
            map["abopomofo"] = '\u311A';
            map["abreve"] = '\u0103';
            map["abreveacute"] = '\u1EAF';
            map["abrevecyrillic"] = '\u04D1';
            map["abrevedotbelow"] = '\u1EB7';
            map["abrevegrave"] = '\u1EB1';
            map["abrevehookabove"] = '\u1EB3';
            map["abrevetilde"] = '\u1EB5';
            map["acaron"] = '\u01CE';
            map["acircle"] = '\u24D0';
            map["acircumflex"] = '\u00E2';
            map["acircumflexacute"] = '\u1EA5';
            map["acircumflexdotbelow"] = '\u1EAD';
            map["acircumflexgrave"] = '\u1EA7';
            map["acircumflexhookabove"] = '\u1EA9';
            map["acircumflextilde"] = '\u1EAB';
            map["acute"] = '\u00B4';
            map["acutebelowcmb"] = '\u0317';
            map["acutecmb"] = '\u0301';
            map["acutecomb"] = '\u0301';
            map["acutedeva"] = '\u0954';
            map["acutelowmod"] = '\u02CF';
            map["acutetonecmb"] = '\u0341';
            map["acyrillic"] = '\u0430';
            map["adblgrave"] = '\u0201';
            map["addakgurmukhi"] = '\u0A71';
            map["adeva"] = '\u0905';
            map["adieresis"] = '\u00E4';
            map["adieresiscyrillic"] = '\u04D3';
            map["adieresismacron"] = '\u01DF';
            map["adotbelow"] = '\u1EA1';
            map["adotmacron"] = '\u01E1';
            map["ae"] = '\u00E6';
            map["aeacute"] = '\u01FD';
            map["aekorean"] = '\u3150';
            map["aemacron"] = '\u01E3';
            map["afii00208"] = '\u2015';
            map["afii08941"] = '\u20A4';
            map["afii10017"] = '\u0410';
            map["afii10018"] = '\u0411';
            map["afii10019"] = '\u0412';
            map["afii10020"] = '\u0413';
            map["afii10021"] = '\u0414';
            map["afii10022"] = '\u0415';
            map["afii10023"] = '\u0401';
            map["afii10024"] = '\u0416';
            map["afii10025"] = '\u0417';
            map["afii10026"] = '\u0418';
            map["afii10027"] = '\u0419';
            map["afii10028"] = '\u041A';
            map["afii10029"] = '\u041B';
            map["afii10030"] = '\u041C';
            map["afii10031"] = '\u041D';
            map["afii10032"] = '\u041E';
            map["afii10033"] = '\u041F';
            map["afii10034"] = '\u0420';
            map["afii10035"] = '\u0421';
            map["afii10036"] = '\u0422';
            map["afii10037"] = '\u0423';
            map["afii10038"] = '\u0424';
            map["afii10039"] = '\u0425';
            map["afii10040"] = '\u0426';
            map["afii10041"] = '\u0427';
            map["afii10042"] = '\u0428';
            map["afii10043"] = '\u0429';
            map["afii10044"] = '\u042A';
            map["afii10045"] = '\u042B';
            map["afii10046"] = '\u042C';
            map["afii10047"] = '\u042D';
            map["afii10048"] = '\u042E';
            map["afii10049"] = '\u042F';
            map["afii10050"] = '\u0490';
            map["afii10051"] = '\u0402';
            map["afii10052"] = '\u0403';
            map["afii10053"] = '\u0404';
            map["afii10054"] = '\u0405';
            map["afii10055"] = '\u0406';
            map["afii10056"] = '\u0407';
            map["afii10057"] = '\u0408';
            map["afii10058"] = '\u0409';
            map["afii10059"] = '\u040A';
            map["afii10060"] = '\u040B';
            map["afii10061"] = '\u040C';
            map["afii10062"] = '\u040E';
            map["afii10063"] = '\uF6C4';
            map["afii10064"] = '\uF6C5';
            map["afii10065"] = '\u0430';
            map["afii10066"] = '\u0431';
            map["afii10067"] = '\u0432';
            map["afii10068"] = '\u0433';
            map["afii10069"] = '\u0434';
            map["afii10070"] = '\u0435';
            map["afii10071"] = '\u0451';
            map["afii10072"] = '\u0436';
            map["afii10073"] = '\u0437';
            map["afii10074"] = '\u0438';
            map["afii10075"] = '\u0439';
            map["afii10076"] = '\u043A';
            map["afii10077"] = '\u043B';
            map["afii10078"] = '\u043C';
            map["afii10079"] = '\u043D';
            map["afii10080"] = '\u043E';
            map["afii10081"] = '\u043F';
            map["afii10082"] = '\u0440';
            map["afii10083"] = '\u0441';
            map["afii10084"] = '\u0442';
            map["afii10085"] = '\u0443';
            map["afii10086"] = '\u0444';
            map["afii10087"] = '\u0445';
            map["afii10088"] = '\u0446';
            map["afii10089"] = '\u0447';
            map["afii10090"] = '\u0448';
            map["afii10091"] = '\u0449';
            map["afii10092"] = '\u044A';
            map["afii10093"] = '\u044B';
            map["afii10094"] = '\u044C';
            map["afii10095"] = '\u044D';
            map["afii10096"] = '\u044E';
            map["afii10097"] = '\u044F';
            map["afii10098"] = '\u0491';
            map["afii10099"] = '\u0452';
            map["afii10100"] = '\u0453';
            map["afii10101"] = '\u0454';
            map["afii10102"] = '\u0455';
            map["afii10103"] = '\u0456';
            map["afii10104"] = '\u0457';
            map["afii10105"] = '\u0458';
            map["afii10106"] = '\u0459';
            map["afii10107"] = '\u045A';
            map["afii10108"] = '\u045B';
            map["afii10109"] = '\u045C';
            map["afii10110"] = '\u045E';
            map["afii10145"] = '\u040F';
            map["afii10146"] = '\u0462';
            map["afii10147"] = '\u0472';
            map["afii10148"] = '\u0474';
            map["afii10192"] = '\uF6C6';
            map["afii10193"] = '\u045F';
            map["afii10194"] = '\u0463';
            map["afii10195"] = '\u0473';
            map["afii10196"] = '\u0475';
            map["afii10831"] = '\uF6C7';
            map["afii10832"] = '\uF6C8';
            map["afii10846"] = '\u04D9';
            map["afii299"] = '\u200E';
            map["afii300"] = '\u200F';
            map["afii301"] = '\u200D';
            map["afii57381"] = '\u066A';
            map["afii57388"] = '\u060C';
            map["afii57392"] = '\u0660';
            map["afii57393"] = '\u0661';
            map["afii57394"] = '\u0662';
            map["afii57395"] = '\u0663';
            map["afii57396"] = '\u0664';
            map["afii57397"] = '\u0665';
            map["afii57398"] = '\u0666';
            map["afii57399"] = '\u0667';
            map["afii57400"] = '\u0668';
            map["afii57401"] = '\u0669';
            map["afii57403"] = '\u061B';
            map["afii57407"] = '\u061F';
            map["afii57409"] = '\u0621';
            map["afii57410"] = '\u0622';
            map["afii57411"] = '\u0623';
            map["afii57412"] = '\u0624';
            map["afii57413"] = '\u0625';
            map["afii57414"] = '\u0626';
            map["afii57415"] = '\u0627';
            map["afii57416"] = '\u0628';
            map["afii57417"] = '\u0629';
            map["afii57418"] = '\u062A';
            map["afii57419"] = '\u062B';
            map["afii57420"] = '\u062C';
            map["afii57421"] = '\u062D';
            map["afii57422"] = '\u062E';
            map["afii57423"] = '\u062F';
            map["afii57424"] = '\u0630';
            map["afii57425"] = '\u0631';
            map["afii57426"] = '\u0632';
            map["afii57427"] = '\u0633';
            map["afii57428"] = '\u0634';
            map["afii57429"] = '\u0635';
            map["afii57430"] = '\u0636';
            map["afii57431"] = '\u0637';
            map["afii57432"] = '\u0638';
            map["afii57433"] = '\u0639';
            map["afii57434"] = '\u063A';
            map["afii57440"] = '\u0640';
            map["afii57441"] = '\u0641';
            map["afii57442"] = '\u0642';
            map["afii57443"] = '\u0643';
            map["afii57444"] = '\u0644';
            map["afii57445"] = '\u0645';
            map["afii57446"] = '\u0646';
            map["afii57448"] = '\u0648';
            map["afii57449"] = '\u0649';
            map["afii57450"] = '\u064A';
            map["afii57451"] = '\u064B';
            map["afii57452"] = '\u064C';
            map["afii57453"] = '\u064D';
            map["afii57454"] = '\u064E';
            map["afii57455"] = '\u064F';
            map["afii57456"] = '\u0650';
            map["afii57457"] = '\u0651';
            map["afii57458"] = '\u0652';
            map["afii57470"] = '\u0647';
            map["afii57505"] = '\u06A4';
            map["afii57506"] = '\u067E';
            map["afii57507"] = '\u0686';
            map["afii57508"] = '\u0698';
            map["afii57509"] = '\u06AF';
            map["afii57511"] = '\u0679';
            map["afii57512"] = '\u0688';
            map["afii57513"] = '\u0691';
            map["afii57514"] = '\u06BA';
            map["afii57519"] = '\u06D2';
            map["afii57534"] = '\u06D5';
            map["afii57636"] = '\u20AA';
            map["afii57645"] = '\u05BE';
            map["afii57658"] = '\u05C3';
            map["afii57664"] = '\u05D0';
            map["afii57665"] = '\u05D1';
            map["afii57666"] = '\u05D2';
            map["afii57667"] = '\u05D3';
            map["afii57668"] = '\u05D4';
            map["afii57669"] = '\u05D5';
            map["afii57670"] = '\u05D6';
            map["afii57671"] = '\u05D7';
            map["afii57672"] = '\u05D8';
            map["afii57673"] = '\u05D9';
            map["afii57674"] = '\u05DA';
            map["afii57675"] = '\u05DB';
            map["afii57676"] = '\u05DC';
            map["afii57677"] = '\u05DD';
            map["afii57678"] = '\u05DE';
            map["afii57679"] = '\u05DF';
            map["afii57680"] = '\u05E0';
            map["afii57681"] = '\u05E1';
            map["afii57682"] = '\u05E2';
            map["afii57683"] = '\u05E3';
            map["afii57684"] = '\u05E4';
            map["afii57685"] = '\u05E5';
            map["afii57686"] = '\u05E6';
            map["afii57687"] = '\u05E7';
            map["afii57688"] = '\u05E8';
            map["afii57689"] = '\u05E9';
            map["afii57690"] = '\u05EA';
            map["afii57694"] = '\uFB2A';
            map["afii57695"] = '\uFB2B';
            map["afii57700"] = '\uFB4B';
            map["afii57705"] = '\uFB1F';
            map["afii57716"] = '\u05F0';
            map["afii57717"] = '\u05F1';
            map["afii57718"] = '\u05F2';
            map["afii57723"] = '\uFB35';
            map["afii57793"] = '\u05B4';
            map["afii57794"] = '\u05B5';
            map["afii57795"] = '\u05B6';
            map["afii57796"] = '\u05BB';
            map["afii57797"] = '\u05B8';
            map["afii57798"] = '\u05B7';
            map["afii57799"] = '\u05B0';
            map["afii57800"] = '\u05B2';
            map["afii57801"] = '\u05B1';
            map["afii57802"] = '\u05B3';
            map["afii57803"] = '\u05C2';
            map["afii57804"] = '\u05C1';
            map["afii57806"] = '\u05B9';
            map["afii57807"] = '\u05BC';
            map["afii57839"] = '\u05BD';
            map["afii57841"] = '\u05BF';
            map["afii57842"] = '\u05C0';
            map["afii57929"] = '\u02BC';
            map["afii61248"] = '\u2105';
            map["afii61289"] = '\u2113';
            map["afii61352"] = '\u2116';
            map["afii61573"] = '\u202C';
            map["afii61574"] = '\u202D';
            map["afii61575"] = '\u202E';
            map["afii61664"] = '\u200C';
            map["afii63167"] = '\u066D';
            map["afii64937"] = '\u02BD';
            map["agrave"] = '\u00E0';
            map["agujarati"] = '\u0A85';
            map["agurmukhi"] = '\u0A05';
            map["ahiragana"] = '\u3042';
            map["ahookabove"] = '\u1EA3';
            map["aibengali"] = '\u0990';
            map["aibopomofo"] = '\u311E';
            map["aideva"] = '\u0910';
            map["aiecyrillic"] = '\u04D5';
            map["aigujarati"] = '\u0A90';
            map["aigurmukhi"] = '\u0A10';
            map["aimatragurmukhi"] = '\u0A48';
            map["ainarabic"] = '\u0639';
            map["ainfinalarabic"] = '\uFECA';
            map["aininitialarabic"] = '\uFECB';
            map["ainmedialarabic"] = '\uFECC';
            map["ainvertedbreve"] = '\u0203';
            map["aivowelsignbengali"] = '\u09C8';
            map["aivowelsigndeva"] = '\u0948';
            map["aivowelsigngujarati"] = '\u0AC8';
            map["akatakana"] = '\u30A2';
            map["akatakanahalfwidth"] = '\uFF71';
            map["akorean"] = '\u314F';
            map["alef"] = '\u05D0';
            map["alefarabic"] = '\u0627';
            map["alefdageshhebrew"] = '\uFB30';
            map["aleffinalarabic"] = '\uFE8E';
            map["alefhamzaabovearabic"] = '\u0623';
            map["alefhamzaabovefinalarabic"] = '\uFE84';
            map["alefhamzabelowarabic"] = '\u0625';
            map["alefhamzabelowfinalarabic"] = '\uFE88';
            map["alefhebrew"] = '\u05D0';
            map["aleflamedhebrew"] = '\uFB4F';
            map["alefmaddaabovearabic"] = '\u0622';
            map["alefmaddaabovefinalarabic"] = '\uFE82';
            map["alefmaksuraarabic"] = '\u0649';
            map["alefmaksurafinalarabic"] = '\uFEF0';
            map["alefmaksurainitialarabic"] = '\uFEF3';
            map["alefmaksuramedialarabic"] = '\uFEF4';
            map["alefpatahhebrew"] = '\uFB2E';
            map["alefqamatshebrew"] = '\uFB2F';
            map["aleph"] = '\u2135';
            map["allequal"] = '\u224C';
            map["alpha"] = '\u03B1';
            map["alphatonos"] = '\u03AC';
            map["amacron"] = '\u0101';
            map["amonospace"] = '\uFF41';
            map["ampersand"] = '\u0026';
            map["ampersandmonospace"] = '\uFF06';
            map["ampersandsmall"] = '\uF726';
            map["amsquare"] = '\u33C2';
            map["anbopomofo"] = '\u3122';
            map["angbopomofo"] = '\u3124';
            map["angkhankhuthai"] = '\u0E5A';
            map["angle"] = '\u2220';
            map["anglebracketleft"] = '\u3008';
            map["anglebracketleftvertical"] = '\uFE3F';
            map["anglebracketright"] = '\u3009';
            map["anglebracketrightvertical"] = '\uFE40';
            map["angleleft"] = '\u2329';
            map["angleright"] = '\u232A';
            map["angstrom"] = '\u212B';
            map["anoteleia"] = '\u0387';
            map["anudattadeva"] = '\u0952';
            map["anusvarabengali"] = '\u0982';
            map["anusvaradeva"] = '\u0902';
            map["anusvaragujarati"] = '\u0A82';
            map["aogonek"] = '\u0105';
            map["apaatosquare"] = '\u3300';
            map["aparen"] = '\u249C';
            map["apostrophearmenian"] = '\u055A';
            map["apostrophemod"] = '\u02BC';
            map["apple"] = '\uF8FF';
            map["approaches"] = '\u2250';
            map["approxequal"] = '\u2248';
            map["approxequalorimage"] = '\u2252';
            map["approximatelyequal"] = '\u2245';
            map["araeaekorean"] = '\u318E';
            map["araeakorean"] = '\u318D';
            map["arc"] = '\u2312';
            map["arighthalfring"] = '\u1E9A';
            map["aring"] = '\u00E5';
            map["aringacute"] = '\u01FB';
            map["aringbelow"] = '\u1E01';
            map["arrowboth"] = '\u2194';
            map["arrowdashdown"] = '\u21E3';
            map["arrowdashleft"] = '\u21E0';
            map["arrowdashright"] = '\u21E2';
            map["arrowdashup"] = '\u21E1';
            map["arrowdblboth"] = '\u21D4';
            map["arrowdbldown"] = '\u21D3';
            map["arrowdblleft"] = '\u21D0';
            map["arrowdblright"] = '\u21D2';
            map["arrowdblup"] = '\u21D1';
            map["arrowdown"] = '\u2193';
            map["arrowdownleft"] = '\u2199';
            map["arrowdownright"] = '\u2198';
            map["arrowdownwhite"] = '\u21E9';
            map["arrowheaddownmod"] = '\u02C5';
            map["arrowheadleftmod"] = '\u02C2';
            map["arrowheadrightmod"] = '\u02C3';
            map["arrowheadupmod"] = '\u02C4';
            map["arrowhorizex"] = '\uF8E7';
            map["arrowleft"] = '\u2190';
            map["arrowleftdbl"] = '\u21D0';
            map["arrowleftdblstroke"] = '\u21CD';
            map["arrowleftoverright"] = '\u21C6';
            map["arrowleftwhite"] = '\u21E6';
            map["arrowright"] = '\u2192';
            map["arrowrightdblstroke"] = '\u21CF';
            map["arrowrightheavy"] = '\u279E';
            map["arrowrightoverleft"] = '\u21C4';
            map["arrowrightwhite"] = '\u21E8';
            map["arrowtableft"] = '\u21E4';
            map["arrowtabright"] = '\u21E5';
            map["arrowup"] = '\u2191';
            map["arrowupdn"] = '\u2195';
            map["arrowupdnbse"] = '\u21A8';
            map["arrowupdownbase"] = '\u21A8';
            map["arrowupleft"] = '\u2196';
            map["arrowupleftofdown"] = '\u21C5';
            map["arrowupright"] = '\u2197';
            map["arrowupwhite"] = '\u21E7';
            map["arrowvertex"] = '\uF8E6';
            map["asciicircum"] = '\u005E';
            map["asciicircummonospace"] = '\uFF3E';
            map["asciitilde"] = '\u007E';
            map["asciitildemonospace"] = '\uFF5E';
            map["ascript"] = '\u0251';
            map["ascriptturned"] = '\u0252';
            map["asmallhiragana"] = '\u3041';
            map["asmallkatakana"] = '\u30A1';
            map["asmallkatakanahalfwidth"] = '\uFF67';
            map["asterisk"] = '\u002A';
            map["asteriskaltonearabic"] = '\u066D';
            map["asteriskarabic"] = '\u066D';
            map["asteriskmath"] = '\u2217';
            map["asteriskmonospace"] = '\uFF0A';
            map["asterisksmall"] = '\uFE61';
            map["asterism"] = '\u2042';
            map["asuperior"] = '\uF6E9';
            map["asymptoticallyequal"] = '\u2243';
            map["at"] = '\u0040';
            map["atilde"] = '\u00E3';
            map["atmonospace"] = '\uFF20';
            map["atsmall"] = '\uFE6B';
            map["aturned"] = '\u0250';
            map["aubengali"] = '\u0994';
            map["aubopomofo"] = '\u3120';
            map["audeva"] = '\u0914';
            map["augujarati"] = '\u0A94';
            map["augurmukhi"] = '\u0A14';
            map["aulengthmarkbengali"] = '\u09D7';
            map["aumatragurmukhi"] = '\u0A4C';
            map["auvowelsignbengali"] = '\u09CC';
            map["auvowelsigndeva"] = '\u094C';
            map["auvowelsigngujarati"] = '\u0ACC';
            map["avagrahadeva"] = '\u093D';
            map["aybarmenian"] = '\u0561';
            map["ayin"] = '\u05E2';
            map["ayinaltonehebrew"] = '\uFB20';
            map["ayinhebrew"] = '\u05E2';
            map["b"] = '\u0062';
            map["babengali"] = '\u09AC';
            map["backslash"] = '\u005C';
            map["backslashmonospace"] = '\uFF3C';
            map["badeva"] = '\u092C';
            map["bagujarati"] = '\u0AAC';
            map["bagurmukhi"] = '\u0A2C';
            map["bahiragana"] = '\u3070';
            map["bahtthai"] = '\u0E3F';
            map["bakatakana"] = '\u30D0';
            map["bar"] = '\u007C';
            map["barmonospace"] = '\uFF5C';
            map["bbopomofo"] = '\u3105';
            map["bcircle"] = '\u24D1';
            map["bdotaccent"] = '\u1E03';
            map["bdotbelow"] = '\u1E05';
            map["beamedsixteenthnotes"] = '\u266C';
            map["because"] = '\u2235';
            map["becyrillic"] = '\u0431';
            map["beharabic"] = '\u0628';
            map["behfinalarabic"] = '\uFE90';
            map["behinitialarabic"] = '\uFE91';
            map["behiragana"] = '\u3079';
            map["behmedialarabic"] = '\uFE92';
            map["behmeeminitialarabic"] = '\uFC9F';
            map["behmeemisolatedarabic"] = '\uFC08';
            map["behnoonfinalarabic"] = '\uFC6D';
            map["bekatakana"] = '\u30D9';
            map["benarmenian"] = '\u0562';
            map["bet"] = '\u05D1';
            map["beta"] = '\u03B2';
            map["betasymbolgreek"] = '\u03D0';
            map["betdagesh"] = '\uFB31';
            map["betdageshhebrew"] = '\uFB31';
            map["bethebrew"] = '\u05D1';
            map["betrafehebrew"] = '\uFB4C';
            map["bhabengali"] = '\u09AD';
            map["bhadeva"] = '\u092D';
            map["bhagujarati"] = '\u0AAD';
            map["bhagurmukhi"] = '\u0A2D';
            map["bhook"] = '\u0253';
            map["bihiragana"] = '\u3073';
            map["bikatakana"] = '\u30D3';
            map["bilabialclick"] = '\u0298';
            map["bindigurmukhi"] = '\u0A02';
            map["birusquare"] = '\u3331';
            map["blackcircle"] = '\u25CF';
            map["blackdiamond"] = '\u25C6';
            map["blackdownpointingtriangle"] = '\u25BC';
            map["blackleftpointingpointer"] = '\u25C4';
            map["blackleftpointingtriangle"] = '\u25C0';
            map["blacklenticularbracketleft"] = '\u3010';
            map["blacklenticularbracketleftvertical"] = '\uFE3B';
            map["blacklenticularbracketright"] = '\u3011';
            map["blacklenticularbracketrightvertical"] = '\uFE3C';
            map["blacklowerlefttriangle"] = '\u25E3';
            map["blacklowerrighttriangle"] = '\u25E2';
            map["blackrectangle"] = '\u25AC';
            map["blackrightpointingpointer"] = '\u25BA';
            map["blackrightpointingtriangle"] = '\u25B6';
            map["blacksmallsquare"] = '\u25AA';
            map["blacksmilingface"] = '\u263B';
            map["blacksquare"] = '\u25A0';
            map["blackstar"] = '\u2605';
            map["blackupperlefttriangle"] = '\u25E4';
            map["blackupperrighttriangle"] = '\u25E5';
            map["blackuppointingsmalltriangle"] = '\u25B4';
            map["blackuppointingtriangle"] = '\u25B2';
            map["blank"] = '\u2423';
            map["blinebelow"] = '\u1E07';
            map["block"] = '\u2588';
            map["bmonospace"] = '\uFF42';
            map["bobaimaithai"] = '\u0E1A';
            map["bohiragana"] = '\u307C';
            map["bokatakana"] = '\u30DC';
            map["bparen"] = '\u249D';
            map["bqsquare"] = '\u33C3';
            map["braceex"] = '\uF8F4';
            map["braceleft"] = '\u007B';
            map["braceleftbt"] = '\uF8F3';
            map["braceleftmid"] = '\uF8F2';
            map["braceleftmonospace"] = '\uFF5B';
            map["braceleftsmall"] = '\uFE5B';
            map["bracelefttp"] = '\uF8F1';
            map["braceleftvertical"] = '\uFE37';
            map["braceright"] = '\u007D';
            map["bracerightbt"] = '\uF8FE';
            map["bracerightmid"] = '\uF8FD';
            map["bracerightmonospace"] = '\uFF5D';
            map["bracerightsmall"] = '\uFE5C';
            map["bracerighttp"] = '\uF8FC';
            map["bracerightvertical"] = '\uFE38';
            map["bracketleft"] = '\u005B';
            map["bracketleftbt"] = '\uF8F0';
            map["bracketleftex"] = '\uF8EF';
            map["bracketleftmonospace"] = '\uFF3B';
            map["bracketlefttp"] = '\uF8EE';
            map["bracketright"] = '\u005D';
            map["bracketrightbt"] = '\uF8FB';
            map["bracketrightex"] = '\uF8FA';
            map["bracketrightmonospace"] = '\uFF3D';
            map["bracketrighttp"] = '\uF8F9';
            map["breve"] = '\u02D8';
            map["brevebelowcmb"] = '\u032E';
            map["brevecmb"] = '\u0306';
            map["breveinvertedbelowcmb"] = '\u032F';
            map["breveinvertedcmb"] = '\u0311';
            map["breveinverteddoublecmb"] = '\u0361';
            map["bridgebelowcmb"] = '\u032A';
            map["bridgeinvertedbelowcmb"] = '\u033A';
            map["brokenbar"] = '\u00A6';
            map["bstroke"] = '\u0180';
            map["bsuperior"] = '\uF6EA';
            map["btopbar"] = '\u0183';
            map["buhiragana"] = '\u3076';
            map["bukatakana"] = '\u30D6';
            map["bullet"] = '\u2022';
            map["bulletinverse"] = '\u25D8';
            map["bulletoperator"] = '\u2219';
            map["bullseye"] = '\u25CE';
            map["c"] = '\u0063';
            map["caarmenian"] = '\u056E';
            map["cabengali"] = '\u099A';
            map["cacute"] = '\u0107';
            map["cadeva"] = '\u091A';
            map["cagujarati"] = '\u0A9A';
            map["cagurmukhi"] = '\u0A1A';
            map["calsquare"] = '\u3388';
            map["candrabindubengali"] = '\u0981';
            map["candrabinducmb"] = '\u0310';
            map["candrabindudeva"] = '\u0901';
            map["candrabindugujarati"] = '\u0A81';
            map["capslock"] = '\u21EA';
            map["careof"] = '\u2105';
            map["caron"] = '\u02C7';
            map["caronbelowcmb"] = '\u032C';
            map["caroncmb"] = '\u030C';
            map["carriagereturn"] = '\u21B5';
            map["cbopomofo"] = '\u3118';
            map["ccaron"] = '\u010D';
            map["ccedilla"] = '\u00E7';
            map["ccedillaacute"] = '\u1E09';
            map["ccircle"] = '\u24D2';
            map["ccircumflex"] = '\u0109';
            map["ccurl"] = '\u0255';
            map["cdot"] = '\u010B';
            map["cdotaccent"] = '\u010B';
            map["cdsquare"] = '\u33C5';
            map["cedilla"] = '\u00B8';
            map["cedillacmb"] = '\u0327';
            map["cent"] = '\u00A2';
            map["centigrade"] = '\u2103';
            map["centinferior"] = '\uF6DF';
            map["centmonospace"] = '\uFFE0';
            map["centoldstyle"] = '\uF7A2';
            map["centsuperior"] = '\uF6E0';
            map["chaarmenian"] = '\u0579';
            map["chabengali"] = '\u099B';
            map["chadeva"] = '\u091B';
            map["chagujarati"] = '\u0A9B';
            map["chagurmukhi"] = '\u0A1B';
            map["chbopomofo"] = '\u3114';
            map["cheabkhasiancyrillic"] = '\u04BD';
            map["checkmark"] = '\u2713';
            map["checyrillic"] = '\u0447';
            map["chedescenderabkhasiancyrillic"] = '\u04BF';
            map["chedescendercyrillic"] = '\u04B7';
            map["chedieresiscyrillic"] = '\u04F5';
            map["cheharmenian"] = '\u0573';
            map["chekhakassiancyrillic"] = '\u04CC';
            map["cheverticalstrokecyrillic"] = '\u04B9';
            map["chi"] = '\u03C7';
            map["chieuchacirclekorean"] = '\u3277';
            map["chieuchaparenkorean"] = '\u3217';
            map["chieuchcirclekorean"] = '\u3269';
            map["chieuchkorean"] = '\u314A';
            map["chieuchparenkorean"] = '\u3209';
            map["chochangthai"] = '\u0E0A';
            map["chochanthai"] = '\u0E08';
            map["chochingthai"] = '\u0E09';
            map["chochoethai"] = '\u0E0C';
            map["chook"] = '\u0188';
            map["cieucacirclekorean"] = '\u3276';
            map["cieucaparenkorean"] = '\u3216';
            map["cieuccirclekorean"] = '\u3268';
            map["cieuckorean"] = '\u3148';
            map["cieucparenkorean"] = '\u3208';
            map["cieucuparenkorean"] = '\u321C';
            map["circle"] = '\u25CB';
            map["circlemultiply"] = '\u2297';
            map["circleot"] = '\u2299';
            map["circleplus"] = '\u2295';
            map["circlepostalmark"] = '\u3036';
            map["circlewithlefthalfblack"] = '\u25D0';
            map["circlewithrighthalfblack"] = '\u25D1';
            map["circumflex"] = '\u02C6';
            map["circumflexbelowcmb"] = '\u032D';
            map["circumflexcmb"] = '\u0302';
            map["clear"] = '\u2327';
            map["clickalveolar"] = '\u01C2';
            map["clickdental"] = '\u01C0';
            map["clicklateral"] = '\u01C1';
            map["clickretroflex"] = '\u01C3';
            map["club"] = '\u2663';
            map["clubsuitblack"] = '\u2663';
            map["clubsuitwhite"] = '\u2667';
            map["cmcubedsquare"] = '\u33A4';
            map["cmonospace"] = '\uFF43';
            map["cmsquaredsquare"] = '\u33A0';
            map["coarmenian"] = '\u0581';
            map["colon"] = '\u003A';
            map["colonmonetary"] = '\u20A1';
            map["colonmonospace"] = '\uFF1A';
            map["colonsign"] = '\u20A1';
            map["colonsmall"] = '\uFE55';
            map["colontriangularhalfmod"] = '\u02D1';
            map["colontriangularmod"] = '\u02D0';
            map["comma"] = '\u002C';
            map["commaabovecmb"] = '\u0313';
            map["commaaboverightcmb"] = '\u0315';
            map["commaaccent"] = '\uF6C3';
            map["commaarabic"] = '\u060C';
            map["commaarmenian"] = '\u055D';
            map["commainferior"] = '\uF6E1';
            map["commamonospace"] = '\uFF0C';
            map["commareversedabovecmb"] = '\u0314';
            map["commareversedmod"] = '\u02BD';
            map["commasmall"] = '\uFE50';
            map["commasuperior"] = '\uF6E2';
            map["commaturnedabovecmb"] = '\u0312';
            map["commaturnedmod"] = '\u02BB';
            map["compass"] = '\u263C';
            map["congruent"] = '\u2245';
            map["contourintegral"] = '\u222E';
            map["control"] = '\u2303';
            map["controlACK"] = '\u0006';
            map["controlBEL"] = '\u0007';
            map["controlBS"] = '\u0008';
            map["controlCAN"] = '\u0018';
            map["controlCR"] = '\u000D';
            map["controlDC1"] = '\u0011';
            map["controlDC2"] = '\u0012';
            map["controlDC3"] = '\u0013';
            map["controlDC4"] = '\u0014';
            map["controlDEL"] = '\u007F';
            map["controlDLE"] = '\u0010';
            map["controlEM"] = '\u0019';
            map["controlENQ"] = '\u0005';
            map["controlEOT"] = '\u0004';
            map["controlESC"] = '\u001B';
            map["controlETB"] = '\u0017';
            map["controlETX"] = '\u0003';
            map["controlFF"] = '\u000C';
            map["controlFS"] = '\u001C';
            map["controlGS"] = '\u001D';
            map["controlHT"] = '\u0009';
            map["controlLF"] = '\u000A';
            map["controlNAK"] = '\u0015';
            map["controlRS"] = '\u001E';
            map["controlSI"] = '\u000F';
            map["controlSO"] = '\u000E';
            map["controlSOT"] = '\u0002';
            map["controlSTX"] = '\u0001';
            map["controlSUB"] = '\u001A';
            map["controlSYN"] = '\u0016';
            map["controlUS"] = '\u001F';
            map["controlVT"] = '\u000B';
            map["copyright"] = '\u00A9';
            map["copyrightsans"] = '\uF8E9';
            map["copyrightserif"] = '\uF6D9';
            map["cornerbracketleft"] = '\u300C';
            map["cornerbracketlefthalfwidth"] = '\uFF62';
            map["cornerbracketleftvertical"] = '\uFE41';
            map["cornerbracketright"] = '\u300D';
            map["cornerbracketrighthalfwidth"] = '\uFF63';
            map["cornerbracketrightvertical"] = '\uFE42';
            map["corporationsquare"] = '\u337F';
            map["cosquare"] = '\u33C7';
            map["coverkgsquare"] = '\u33C6';
            map["cparen"] = '\u249E';
            map["cruzeiro"] = '\u20A2';
            map["cstretched"] = '\u0297';
            map["curlyand"] = '\u22CF';
            map["curlyor"] = '\u22CE';
            map["currency"] = '\u00A4';
            map["cyrBreve"] = '\uF6D1';
            map["cyrFlex"] = '\uF6D2';
            map["cyrbreve"] = '\uF6D4';
            map["cyrflex"] = '\uF6D5';
            map["d"] = '\u0064';
            map["daarmenian"] = '\u0564';
            map["dabengali"] = '\u09A6';
            map["dadarabic"] = '\u0636';
            map["dadeva"] = '\u0926';
            map["dadfinalarabic"] = '\uFEBE';
            map["dadinitialarabic"] = '\uFEBF';
            map["dadmedialarabic"] = '\uFEC0';
            map["dagesh"] = '\u05BC';
            map["dageshhebrew"] = '\u05BC';
            map["dagger"] = '\u2020';
            map["daggerdbl"] = '\u2021';
            map["dagujarati"] = '\u0AA6';
            map["dagurmukhi"] = '\u0A26';
            map["dahiragana"] = '\u3060';
            map["dakatakana"] = '\u30C0';
            map["dalarabic"] = '\u062F';
            map["dalet"] = '\u05D3';
            map["daletdagesh"] = '\uFB33';
            map["daletdageshhebrew"] = '\uFB33';
            //map["dalethatafpatah"] = '\u05D3'; // should be '05D3 05B2' (multiple codepoints not supported yet)
            //map["dalethatafpatahhebrew"] = '\u05D3'; // should be '05D3 05B2' (multiple codepoints not supported yet)
            //map["dalethatafsegol"] = '\u05D3'; // should be '05D3 05B1' (multiple codepoints not supported yet)
            //map["dalethatafsegolhebrew"] = '\u05D3'; // should be '05D3 05B1' (multiple codepoints not supported yet)
            map["dalethebrew"] = '\u05D3';
            //map["dalethiriq"] = '\u05D3'; // should be '05D3 05B4' (multiple codepoints not supported yet)
            //map["dalethiriqhebrew"] = '\u05D3'; // should be '05D3 05B4' (multiple codepoints not supported yet)
            //map["daletholam"] = '\u05D3'; // should be '05D3 05B9' (multiple codepoints not supported yet)
            //map["daletholamhebrew"] = '\u05D3'; // should be '05D3 05B9' (multiple codepoints not supported yet)
            //map["daletpatah"] = '\u05D3'; // should be '05D3 05B7' (multiple codepoints not supported yet)
            //map["daletpatahhebrew"] = '\u05D3'; // should be '05D3 05B7' (multiple codepoints not supported yet)
            //map["daletqamats"] = '\u05D3'; // should be '05D3 05B8' (multiple codepoints not supported yet)
            //map["daletqamatshebrew"] = '\u05D3'; // should be '05D3 05B8' (multiple codepoints not supported yet)
            //map["daletqubuts"] = '\u05D3'; // should be '05D3 05BB' (multiple codepoints not supported yet)
            //map["daletqubutshebrew"] = '\u05D3'; // should be '05D3 05BB' (multiple codepoints not supported yet)
            //map["daletsegol"] = '\u05D3'; // should be '05D3 05B6' (multiple codepoints not supported yet)
            //map["daletsegolhebrew"] = '\u05D3'; // should be '05D3 05B6' (multiple codepoints not supported yet)
            //map["daletsheva"] = '\u05D3'; // should be '05D3 05B0' (multiple codepoints not supported yet)
            //map["daletshevahebrew"] = '\u05D3'; // should be '05D3 05B0' (multiple codepoints not supported yet)
            //map["dalettsere"] = '\u05D3'; // should be '05D3 05B5' (multiple codepoints not supported yet)
            //map["dalettserehebrew"] = '\u05D3'; // should be '05D3 05B5' (multiple codepoints not supported yet)
            map["dalfinalarabic"] = '\uFEAA';
            map["dammaarabic"] = '\u064F';
            map["dammalowarabic"] = '\u064F';
            map["dammatanaltonearabic"] = '\u064C';
            map["dammatanarabic"] = '\u064C';
            map["danda"] = '\u0964';
            map["dargahebrew"] = '\u05A7';
            map["dargalefthebrew"] = '\u05A7';
            map["dasiapneumatacyrilliccmb"] = '\u0485';
            map["dblGrave"] = '\uF6D3';
            map["dblanglebracketleft"] = '\u300A';
            map["dblanglebracketleftvertical"] = '\uFE3D';
            map["dblanglebracketright"] = '\u300B';
            map["dblanglebracketrightvertical"] = '\uFE3E';
            map["dblarchinvertedbelowcmb"] = '\u032B';
            map["dblarrowleft"] = '\u21D4';
            map["dblarrowright"] = '\u21D2';
            map["dbldanda"] = '\u0965';
            map["dblgrave"] = '\uF6D6';
            map["dblgravecmb"] = '\u030F';
            map["dblintegral"] = '\u222C';
            map["dbllowline"] = '\u2017';
            map["dbllowlinecmb"] = '\u0333';
            map["dbloverlinecmb"] = '\u033F';
            map["dblprimemod"] = '\u02BA';
            map["dblverticalbar"] = '\u2016';
            map["dblverticallineabovecmb"] = '\u030E';
            map["dbopomofo"] = '\u3109';
            map["dbsquare"] = '\u33C8';
            map["dcaron"] = '\u010F';
            map["dcedilla"] = '\u1E11';
            map["dcircle"] = '\u24D3';
            map["dcircumflexbelow"] = '\u1E13';
            map["dcroat"] = '\u0111';
            map["ddabengali"] = '\u09A1';
            map["ddadeva"] = '\u0921';
            map["ddagujarati"] = '\u0AA1';
            map["ddagurmukhi"] = '\u0A21';
            map["ddalarabic"] = '\u0688';
            map["ddalfinalarabic"] = '\uFB89';
            map["dddhadeva"] = '\u095C';
            map["ddhabengali"] = '\u09A2';
            map["ddhadeva"] = '\u0922';
            map["ddhagujarati"] = '\u0AA2';
            map["ddhagurmukhi"] = '\u0A22';
            map["ddotaccent"] = '\u1E0B';
            map["ddotbelow"] = '\u1E0D';
            map["decimalseparatorarabic"] = '\u066B';
            map["decimalseparatorpersian"] = '\u066B';
            map["decyrillic"] = '\u0434';
            map["degree"] = '\u00B0';
            map["dehihebrew"] = '\u05AD';
            map["dehiragana"] = '\u3067';
            map["deicoptic"] = '\u03EF';
            map["dekatakana"] = '\u30C7';
            map["deleteleft"] = '\u232B';
            map["deleteright"] = '\u2326';
            map["delta"] = '\u03B4';
            map["deltaturned"] = '\u018D';
            map["denominatorminusonenumeratorbengali"] = '\u09F8';
            map["dezh"] = '\u02A4';
            map["dhabengali"] = '\u09A7';
            map["dhadeva"] = '\u0927';
            map["dhagujarati"] = '\u0AA7';
            map["dhagurmukhi"] = '\u0A27';
            map["dhook"] = '\u0257';
            map["dialytikatonos"] = '\u0385';
            map["dialytikatonoscmb"] = '\u0344';
            map["diamond"] = '\u2666';
            map["diamondsuitwhite"] = '\u2662';
            map["dieresis"] = '\u00A8';
            map["dieresisacute"] = '\uF6D7';
            map["dieresisbelowcmb"] = '\u0324';
            map["dieresiscmb"] = '\u0308';
            map["dieresisgrave"] = '\uF6D8';
            map["dieresistonos"] = '\u0385';
            map["dihiragana"] = '\u3062';
            map["dikatakana"] = '\u30C2';
            map["dittomark"] = '\u3003';
            map["divide"] = '\u00F7';
            map["divides"] = '\u2223';
            map["divisionslash"] = '\u2215';
            map["djecyrillic"] = '\u0452';
            map["dkshade"] = '\u2593';
            map["dlinebelow"] = '\u1E0F';
            map["dlsquare"] = '\u3397';
            map["dmacron"] = '\u0111';
            map["dmonospace"] = '\uFF44';
            map["dnblock"] = '\u2584';
            map["dochadathai"] = '\u0E0E';
            map["dodekthai"] = '\u0E14';
            map["dohiragana"] = '\u3069';
            map["dokatakana"] = '\u30C9';
            map["dollar"] = '\u0024';
            map["dollarinferior"] = '\uF6E3';
            map["dollarmonospace"] = '\uFF04';
            map["dollaroldstyle"] = '\uF724';
            map["dollarsmall"] = '\uFE69';
            map["dollarsuperior"] = '\uF6E4';
            map["dong"] = '\u20AB';
            map["dorusquare"] = '\u3326';
            map["dotaccent"] = '\u02D9';
            map["dotaccentcmb"] = '\u0307';
            map["dotbelowcmb"] = '\u0323';
            map["dotbelowcomb"] = '\u0323';
            map["dotkatakana"] = '\u30FB';
            map["dotlessi"] = '\u0131';
            map["dotlessj"] = '\uF6BE';
            map["dotlessjstrokehook"] = '\u0284';
            map["dotmath"] = '\u22C5';
            map["dottedcircle"] = '\u25CC';
            map["doubleyodpatah"] = '\uFB1F';
            map["doubleyodpatahhebrew"] = '\uFB1F';
            map["downtackbelowcmb"] = '\u031E';
            map["downtackmod"] = '\u02D5';
            map["dparen"] = '\u249F';
            map["dsuperior"] = '\uF6EB';
            map["dtail"] = '\u0256';
            map["dtopbar"] = '\u018C';
            map["duhiragana"] = '\u3065';
            map["dukatakana"] = '\u30C5';
            map["dz"] = '\u01F3';
            map["dzaltone"] = '\u02A3';
            map["dzcaron"] = '\u01C6';
            map["dzcurl"] = '\u02A5';
            map["dzeabkhasiancyrillic"] = '\u04E1';
            map["dzecyrillic"] = '\u0455';
            map["dzhecyrillic"] = '\u045F';
            map["e"] = '\u0065';
            map["eacute"] = '\u00E9';
            map["earth"] = '\u2641';
            map["ebengali"] = '\u098F';
            map["ebopomofo"] = '\u311C';
            map["ebreve"] = '\u0115';
            map["ecandradeva"] = '\u090D';
            map["ecandragujarati"] = '\u0A8D';
            map["ecandravowelsigndeva"] = '\u0945';
            map["ecandravowelsigngujarati"] = '\u0AC5';
            map["ecaron"] = '\u011B';
            map["ecedillabreve"] = '\u1E1D';
            map["echarmenian"] = '\u0565';
            map["echyiwnarmenian"] = '\u0587';
            map["ecircle"] = '\u24D4';
            map["ecircumflex"] = '\u00EA';
            map["ecircumflexacute"] = '\u1EBF';
            map["ecircumflexbelow"] = '\u1E19';
            map["ecircumflexdotbelow"] = '\u1EC7';
            map["ecircumflexgrave"] = '\u1EC1';
            map["ecircumflexhookabove"] = '\u1EC3';
            map["ecircumflextilde"] = '\u1EC5';
            map["ecyrillic"] = '\u0454';
            map["edblgrave"] = '\u0205';
            map["edeva"] = '\u090F';
            map["edieresis"] = '\u00EB';
            map["edot"] = '\u0117';
            map["edotaccent"] = '\u0117';
            map["edotbelow"] = '\u1EB9';
            map["eegurmukhi"] = '\u0A0F';
            map["eematragurmukhi"] = '\u0A47';
            map["efcyrillic"] = '\u0444';
            map["egrave"] = '\u00E8';
            map["egujarati"] = '\u0A8F';
            map["eharmenian"] = '\u0567';
            map["ehbopomofo"] = '\u311D';
            map["ehiragana"] = '\u3048';
            map["ehookabove"] = '\u1EBB';
            map["eibopomofo"] = '\u311F';
            map["eight"] = '\u0038';
            map["eightarabic"] = '\u0668';
            map["eightbengali"] = '\u09EE';
            map["eightcircle"] = '\u2467';
            map["eightcircleinversesansserif"] = '\u2791';
            map["eightdeva"] = '\u096E';
            map["eighteencircle"] = '\u2471';
            map["eighteenparen"] = '\u2485';
            map["eighteenperiod"] = '\u2499';
            map["eightgujarati"] = '\u0AEE';
            map["eightgurmukhi"] = '\u0A6E';
            map["eighthackarabic"] = '\u0668';
            map["eighthangzhou"] = '\u3028';
            map["eighthnotebeamed"] = '\u266B';
            map["eightideographicparen"] = '\u3227';
            map["eightinferior"] = '\u2088';
            map["eightmonospace"] = '\uFF18';
            map["eightoldstyle"] = '\uF738';
            map["eightparen"] = '\u247B';
            map["eightperiod"] = '\u248F';
            map["eightpersian"] = '\u06F8';
            map["eightroman"] = '\u2177';
            map["eightsuperior"] = '\u2078';
            map["eightthai"] = '\u0E58';
            map["einvertedbreve"] = '\u0207';
            map["eiotifiedcyrillic"] = '\u0465';
            map["ekatakana"] = '\u30A8';
            map["ekatakanahalfwidth"] = '\uFF74';
            map["ekonkargurmukhi"] = '\u0A74';
            map["ekorean"] = '\u3154';
            map["elcyrillic"] = '\u043B';
            map["element"] = '\u2208';
            map["elevencircle"] = '\u246A';
            map["elevenparen"] = '\u247E';
            map["elevenperiod"] = '\u2492';
            map["elevenroman"] = '\u217A';
            map["ellipsis"] = '\u2026';
            map["ellipsisvertical"] = '\u22EE';
            map["emacron"] = '\u0113';
            map["emacronacute"] = '\u1E17';
            map["emacrongrave"] = '\u1E15';
            map["emcyrillic"] = '\u043C';
            map["emdash"] = '\u2014';
            map["emdashvertical"] = '\uFE31';
            map["emonospace"] = '\uFF45';
            map["emphasismarkarmenian"] = '\u055B';
            map["emptyset"] = '\u2205';
            map["enbopomofo"] = '\u3123';
            map["encyrillic"] = '\u043D';
            map["endash"] = '\u2013';
            map["endashvertical"] = '\uFE32';
            map["endescendercyrillic"] = '\u04A3';
            map["eng"] = '\u014B';
            map["engbopomofo"] = '\u3125';
            map["enghecyrillic"] = '\u04A5';
            map["enhookcyrillic"] = '\u04C8';
            map["enspace"] = '\u2002';
            map["eogonek"] = '\u0119';
            map["eokorean"] = '\u3153';
            map["eopen"] = '\u025B';
            map["eopenclosed"] = '\u029A';
            map["eopenreversed"] = '\u025C';
            map["eopenreversedclosed"] = '\u025E';
            map["eopenreversedhook"] = '\u025D';
            map["eparen"] = '\u24A0';
            map["epsilon"] = '\u03B5';
            map["epsilontonos"] = '\u03AD';
            map["equal"] = '\u003D';
            map["equalmonospace"] = '\uFF1D';
            map["equalsmall"] = '\uFE66';
            map["equalsuperior"] = '\u207C';
            map["equivalence"] = '\u2261';
            map["erbopomofo"] = '\u3126';
            map["ercyrillic"] = '\u0440';
            map["ereversed"] = '\u0258';
            map["ereversedcyrillic"] = '\u044D';
            map["escyrillic"] = '\u0441';
            map["esdescendercyrillic"] = '\u04AB';
            map["esh"] = '\u0283';
            map["eshcurl"] = '\u0286';
            map["eshortdeva"] = '\u090E';
            map["eshortvowelsigndeva"] = '\u0946';
            map["eshreversedloop"] = '\u01AA';
            map["eshsquatreversed"] = '\u0285';
            map["esmallhiragana"] = '\u3047';
            map["esmallkatakana"] = '\u30A7';
            map["esmallkatakanahalfwidth"] = '\uFF6A';
            map["estimated"] = '\u212E';
            map["esuperior"] = '\uF6EC';
            map["eta"] = '\u03B7';
            map["etarmenian"] = '\u0568';
            map["etatonos"] = '\u03AE';
            map["eth"] = '\u00F0';
            map["etilde"] = '\u1EBD';
            map["etildebelow"] = '\u1E1B';
            map["etnahtafoukhhebrew"] = '\u0591';
            map["etnahtafoukhlefthebrew"] = '\u0591';
            map["etnahtahebrew"] = '\u0591';
            map["etnahtalefthebrew"] = '\u0591';
            map["eturned"] = '\u01DD';
            map["eukorean"] = '\u3161';
            map["euro"] = '\u20AC';
            map["evowelsignbengali"] = '\u09C7';
            map["evowelsigndeva"] = '\u0947';
            map["evowelsigngujarati"] = '\u0AC7';
            map["exclam"] = '\u0021';
            map["exclamarmenian"] = '\u055C';
            map["exclamdbl"] = '\u203C';
            map["exclamdown"] = '\u00A1';
            map["exclamdownsmall"] = '\uF7A1';
            map["exclammonospace"] = '\uFF01';
            map["exclamsmall"] = '\uF721';
            map["existential"] = '\u2203';
            map["ezh"] = '\u0292';
            map["ezhcaron"] = '\u01EF';
            map["ezhcurl"] = '\u0293';
            map["ezhreversed"] = '\u01B9';
            map["ezhtail"] = '\u01BA';
            map["f"] = '\u0066';
            map["fadeva"] = '\u095E';
            map["fagurmukhi"] = '\u0A5E';
            map["fahrenheit"] = '\u2109';
            map["fathaarabic"] = '\u064E';
            map["fathalowarabic"] = '\u064E';
            map["fathatanarabic"] = '\u064B';
            map["fbopomofo"] = '\u3108';
            map["fcircle"] = '\u24D5';
            map["fdotaccent"] = '\u1E1F';
            map["feharabic"] = '\u0641';
            map["feharmenian"] = '\u0586';
            map["fehfinalarabic"] = '\uFED2';
            map["fehinitialarabic"] = '\uFED3';
            map["fehmedialarabic"] = '\uFED4';
            map["feicoptic"] = '\u03E5';
            map["female"] = '\u2640';
            map["ff"] = '\uFB00';
            map["ffi"] = '\uFB03';
            map["ffl"] = '\uFB04';
            map["fi"] = '\uFB01';
            map["fifteencircle"] = '\u246E';
            map["fifteenparen"] = '\u2482';
            map["fifteenperiod"] = '\u2496';
            map["figuredash"] = '\u2012';
            map["filledbox"] = '\u25A0';
            map["filledrect"] = '\u25AC';
            map["finalkaf"] = '\u05DA';
            map["finalkafdagesh"] = '\uFB3A';
            map["finalkafdageshhebrew"] = '\uFB3A';
            map["finalkafhebrew"] = '\u05DA';
            //map["finalkafqamats"] = '\u05DA'; // should be '05DA 05B8' (multiple codepoints not supported yet)
            //map["finalkafqamatshebrew"] = '\u05DA'; // should be '05DA 05B8' (multiple codepoints not supported yet)
            //map["finalkafsheva"] = '\u05DA'; // should be '05DA 05B0' (multiple codepoints not supported yet)
            //map["finalkafshevahebrew"] = '\u05DA'; // should be '05DA 05B0' (multiple codepoints not supported yet)
            map["finalmem"] = '\u05DD';
            map["finalmemhebrew"] = '\u05DD';
            map["finalnun"] = '\u05DF';
            map["finalnunhebrew"] = '\u05DF';
            map["finalpe"] = '\u05E3';
            map["finalpehebrew"] = '\u05E3';
            map["finaltsadi"] = '\u05E5';
            map["finaltsadihebrew"] = '\u05E5';
            map["firsttonechinese"] = '\u02C9';
            map["fisheye"] = '\u25C9';
            map["fitacyrillic"] = '\u0473';
            map["five"] = '\u0035';
            map["fivearabic"] = '\u0665';
            map["fivebengali"] = '\u09EB';
            map["fivecircle"] = '\u2464';
            map["fivecircleinversesansserif"] = '\u278E';
            map["fivedeva"] = '\u096B';
            map["fiveeighths"] = '\u215D';
            map["fivegujarati"] = '\u0AEB';
            map["fivegurmukhi"] = '\u0A6B';
            map["fivehackarabic"] = '\u0665';
            map["fivehangzhou"] = '\u3025';
            map["fiveideographicparen"] = '\u3224';
            map["fiveinferior"] = '\u2085';
            map["fivemonospace"] = '\uFF15';
            map["fiveoldstyle"] = '\uF735';
            map["fiveparen"] = '\u2478';
            map["fiveperiod"] = '\u248C';
            map["fivepersian"] = '\u06F5';
            map["fiveroman"] = '\u2174';
            map["fivesuperior"] = '\u2075';
            map["fivethai"] = '\u0E55';
            map["fl"] = '\uFB02';
            map["florin"] = '\u0192';
            map["fmonospace"] = '\uFF46';
            map["fmsquare"] = '\u3399';
            map["fofanthai"] = '\u0E1F';
            map["fofathai"] = '\u0E1D';
            map["fongmanthai"] = '\u0E4F';
            map["forall"] = '\u2200';
            map["four"] = '\u0034';
            map["fourarabic"] = '\u0664';
            map["fourbengali"] = '\u09EA';
            map["fourcircle"] = '\u2463';
            map["fourcircleinversesansserif"] = '\u278D';
            map["fourdeva"] = '\u096A';
            map["fourgujarati"] = '\u0AEA';
            map["fourgurmukhi"] = '\u0A6A';
            map["fourhackarabic"] = '\u0664';
            map["fourhangzhou"] = '\u3024';
            map["fourideographicparen"] = '\u3223';
            map["fourinferior"] = '\u2084';
            map["fourmonospace"] = '\uFF14';
            map["fournumeratorbengali"] = '\u09F7';
            map["fouroldstyle"] = '\uF734';
            map["fourparen"] = '\u2477';
            map["fourperiod"] = '\u248B';
            map["fourpersian"] = '\u06F4';
            map["fourroman"] = '\u2173';
            map["foursuperior"] = '\u2074';
            map["fourteencircle"] = '\u246D';
            map["fourteenparen"] = '\u2481';
            map["fourteenperiod"] = '\u2495';
            map["fourthai"] = '\u0E54';
            map["fourthtonechinese"] = '\u02CB';
            map["fparen"] = '\u24A1';
            map["fraction"] = '\u2044';
            map["franc"] = '\u20A3';
            map["g"] = '\u0067';
            map["gabengali"] = '\u0997';
            map["gacute"] = '\u01F5';
            map["gadeva"] = '\u0917';
            map["gafarabic"] = '\u06AF';
            map["gaffinalarabic"] = '\uFB93';
            map["gafinitialarabic"] = '\uFB94';
            map["gafmedialarabic"] = '\uFB95';
            map["gagujarati"] = '\u0A97';
            map["gagurmukhi"] = '\u0A17';
            map["gahiragana"] = '\u304C';
            map["gakatakana"] = '\u30AC';
            map["gamma"] = '\u03B3';
            map["gammalatinsmall"] = '\u0263';
            map["gammasuperior"] = '\u02E0';
            map["gangiacoptic"] = '\u03EB';
            map["gbopomofo"] = '\u310D';
            map["gbreve"] = '\u011F';
            map["gcaron"] = '\u01E7';
            map["gcedilla"] = '\u0123';
            map["gcircle"] = '\u24D6';
            map["gcircumflex"] = '\u011D';
            map["gcommaaccent"] = '\u0123';
            map["gdot"] = '\u0121';
            map["gdotaccent"] = '\u0121';
            map["gecyrillic"] = '\u0433';
            map["gehiragana"] = '\u3052';
            map["gekatakana"] = '\u30B2';
            map["geometricallyequal"] = '\u2251';
            map["gereshaccenthebrew"] = '\u059C';
            map["gereshhebrew"] = '\u05F3';
            map["gereshmuqdamhebrew"] = '\u059D';
            map["germandbls"] = '\u00DF';
            map["gershayimaccenthebrew"] = '\u059E';
            map["gershayimhebrew"] = '\u05F4';
            map["getamark"] = '\u3013';
            map["ghabengali"] = '\u0998';
            map["ghadarmenian"] = '\u0572';
            map["ghadeva"] = '\u0918';
            map["ghagujarati"] = '\u0A98';
            map["ghagurmukhi"] = '\u0A18';
            map["ghainarabic"] = '\u063A';
            map["ghainfinalarabic"] = '\uFECE';
            map["ghaininitialarabic"] = '\uFECF';
            map["ghainmedialarabic"] = '\uFED0';
            map["ghemiddlehookcyrillic"] = '\u0495';
            map["ghestrokecyrillic"] = '\u0493';
            map["gheupturncyrillic"] = '\u0491';
            map["ghhadeva"] = '\u095A';
            map["ghhagurmukhi"] = '\u0A5A';
            map["ghook"] = '\u0260';
            map["ghzsquare"] = '\u3393';
            map["gihiragana"] = '\u304E';
            map["gikatakana"] = '\u30AE';
            map["gimarmenian"] = '\u0563';
            map["gimel"] = '\u05D2';
            map["gimeldagesh"] = '\uFB32';
            map["gimeldageshhebrew"] = '\uFB32';
            map["gimelhebrew"] = '\u05D2';
            map["gjecyrillic"] = '\u0453';
            map["glottalinvertedstroke"] = '\u01BE';
            map["glottalstop"] = '\u0294';
            map["glottalstopinverted"] = '\u0296';
            map["glottalstopmod"] = '\u02C0';
            map["glottalstopreversed"] = '\u0295';
            map["glottalstopreversedmod"] = '\u02C1';
            map["glottalstopreversedsuperior"] = '\u02E4';
            map["glottalstopstroke"] = '\u02A1';
            map["glottalstopstrokereversed"] = '\u02A2';
            map["gmacron"] = '\u1E21';
            map["gmonospace"] = '\uFF47';
            map["gohiragana"] = '\u3054';
            map["gokatakana"] = '\u30B4';
            map["gparen"] = '\u24A2';
            map["gpasquare"] = '\u33AC';
            map["gradient"] = '\u2207';
            map["grave"] = '\u0060';
            map["gravebelowcmb"] = '\u0316';
            map["gravecmb"] = '\u0300';
            map["gravecomb"] = '\u0300';
            map["gravedeva"] = '\u0953';
            map["gravelowmod"] = '\u02CE';
            map["gravemonospace"] = '\uFF40';
            map["gravetonecmb"] = '\u0340';
            map["greater"] = '\u003E';
            map["greaterequal"] = '\u2265';
            map["greaterequalorless"] = '\u22DB';
            map["greatermonospace"] = '\uFF1E';
            map["greaterorequivalent"] = '\u2273';
            map["greaterorless"] = '\u2277';
            map["greateroverequal"] = '\u2267';
            map["greatersmall"] = '\uFE65';
            map["gscript"] = '\u0261';
            map["gstroke"] = '\u01E5';
            map["guhiragana"] = '\u3050';
            map["guillemotleft"] = '\u00AB';
            map["guillemotright"] = '\u00BB';
            map["guilsinglleft"] = '\u2039';
            map["guilsinglright"] = '\u203A';
            map["gukatakana"] = '\u30B0';
            map["guramusquare"] = '\u3318';
            map["gysquare"] = '\u33C9';
            map["h"] = '\u0068';
            map["haabkhasiancyrillic"] = '\u04A9';
            map["haaltonearabic"] = '\u06C1';
            map["habengali"] = '\u09B9';
            map["hadescendercyrillic"] = '\u04B3';
            map["hadeva"] = '\u0939';
            map["hagujarati"] = '\u0AB9';
            map["hagurmukhi"] = '\u0A39';
            map["haharabic"] = '\u062D';
            map["hahfinalarabic"] = '\uFEA2';
            map["hahinitialarabic"] = '\uFEA3';
            map["hahiragana"] = '\u306F';
            map["hahmedialarabic"] = '\uFEA4';
            map["haitusquare"] = '\u332A';
            map["hakatakana"] = '\u30CF';
            map["hakatakanahalfwidth"] = '\uFF8A';
            map["halantgurmukhi"] = '\u0A4D';
            map["hamzaarabic"] = '\u0621';
            //map["hamzadammaarabic"] = '\u0621'; // should be '0621 064F' (multiple codepoints not supported yet)
            //map["hamzadammatanarabic"] = '\u0621'; // should be '0621 064C' (multiple codepoints not supported yet)
            //map["hamzafathaarabic"] = '\u0621'; // should be '0621 064E' (multiple codepoints not supported yet)
            //map["hamzafathatanarabic"] = '\u0621'; // should be '0621 064B' (multiple codepoints not supported yet)
            map["hamzalowarabic"] = '\u0621';
            //map["hamzalowkasraarabic"] = '\u0621'; // should be '0621 0650' (multiple codepoints not supported yet)
            //map["hamzalowkasratanarabic"] = '\u0621'; // should be '0621 064D' (multiple codepoints not supported yet)
            //map["hamzasukunarabic"] = '\u0621'; // should be '0621 0652' (multiple codepoints not supported yet)
            map["hangulfiller"] = '\u3164';
            map["hardsigncyrillic"] = '\u044A';
            map["harpoonleftbarbup"] = '\u21BC';
            map["harpoonrightbarbup"] = '\u21C0';
            map["hasquare"] = '\u33CA';
            map["hatafpatah"] = '\u05B2';
            map["hatafpatah16"] = '\u05B2';
            map["hatafpatah23"] = '\u05B2';
            map["hatafpatah2f"] = '\u05B2';
            map["hatafpatahhebrew"] = '\u05B2';
            map["hatafpatahnarrowhebrew"] = '\u05B2';
            map["hatafpatahquarterhebrew"] = '\u05B2';
            map["hatafpatahwidehebrew"] = '\u05B2';
            map["hatafqamats"] = '\u05B3';
            map["hatafqamats1b"] = '\u05B3';
            map["hatafqamats28"] = '\u05B3';
            map["hatafqamats34"] = '\u05B3';
            map["hatafqamatshebrew"] = '\u05B3';
            map["hatafqamatsnarrowhebrew"] = '\u05B3';
            map["hatafqamatsquarterhebrew"] = '\u05B3';
            map["hatafqamatswidehebrew"] = '\u05B3';
            map["hatafsegol"] = '\u05B1';
            map["hatafsegol17"] = '\u05B1';
            map["hatafsegol24"] = '\u05B1';
            map["hatafsegol30"] = '\u05B1';
            map["hatafsegolhebrew"] = '\u05B1';
            map["hatafsegolnarrowhebrew"] = '\u05B1';
            map["hatafsegolquarterhebrew"] = '\u05B1';
            map["hatafsegolwidehebrew"] = '\u05B1';
            map["hbar"] = '\u0127';
            map["hbopomofo"] = '\u310F';
            map["hbrevebelow"] = '\u1E2B';
            map["hcedilla"] = '\u1E29';
            map["hcircle"] = '\u24D7';
            map["hcircumflex"] = '\u0125';
            map["hdieresis"] = '\u1E27';
            map["hdotaccent"] = '\u1E23';
            map["hdotbelow"] = '\u1E25';
            map["he"] = '\u05D4';
            map["heart"] = '\u2665';
            map["heartsuitblack"] = '\u2665';
            map["heartsuitwhite"] = '\u2661';
            map["hedagesh"] = '\uFB34';
            map["hedageshhebrew"] = '\uFB34';
            map["hehaltonearabic"] = '\u06C1';
            map["heharabic"] = '\u0647';
            map["hehebrew"] = '\u05D4';
            map["hehfinalaltonearabic"] = '\uFBA7';
            map["hehfinalalttwoarabic"] = '\uFEEA';
            map["hehfinalarabic"] = '\uFEEA';
            map["hehhamzaabovefinalarabic"] = '\uFBA5';
            map["hehhamzaaboveisolatedarabic"] = '\uFBA4';
            map["hehinitialaltonearabic"] = '\uFBA8';
            map["hehinitialarabic"] = '\uFEEB';
            map["hehiragana"] = '\u3078';
            map["hehmedialaltonearabic"] = '\uFBA9';
            map["hehmedialarabic"] = '\uFEEC';
            map["heiseierasquare"] = '\u337B';
            map["hekatakana"] = '\u30D8';
            map["hekatakanahalfwidth"] = '\uFF8D';
            map["hekutaarusquare"] = '\u3336';
            map["henghook"] = '\u0267';
            map["herutusquare"] = '\u3339';
            map["het"] = '\u05D7';
            map["hethebrew"] = '\u05D7';
            map["hhook"] = '\u0266';
            map["hhooksuperior"] = '\u02B1';
            map["hieuhacirclekorean"] = '\u327B';
            map["hieuhaparenkorean"] = '\u321B';
            map["hieuhcirclekorean"] = '\u326D';
            map["hieuhkorean"] = '\u314E';
            map["hieuhparenkorean"] = '\u320D';
            map["hihiragana"] = '\u3072';
            map["hikatakana"] = '\u30D2';
            map["hikatakanahalfwidth"] = '\uFF8B';
            map["hiriq"] = '\u05B4';
            map["hiriq14"] = '\u05B4';
            map["hiriq21"] = '\u05B4';
            map["hiriq2d"] = '\u05B4';
            map["hiriqhebrew"] = '\u05B4';
            map["hiriqnarrowhebrew"] = '\u05B4';
            map["hiriqquarterhebrew"] = '\u05B4';
            map["hiriqwidehebrew"] = '\u05B4';
            map["hlinebelow"] = '\u1E96';
            map["hmonospace"] = '\uFF48';
            map["hoarmenian"] = '\u0570';
            map["hohipthai"] = '\u0E2B';
            map["hohiragana"] = '\u307B';
            map["hokatakana"] = '\u30DB';
            map["hokatakanahalfwidth"] = '\uFF8E';
            map["holam"] = '\u05B9';
            map["holam19"] = '\u05B9';
            map["holam26"] = '\u05B9';
            map["holam32"] = '\u05B9';
            map["holamhebrew"] = '\u05B9';
            map["holamnarrowhebrew"] = '\u05B9';
            map["holamquarterhebrew"] = '\u05B9';
            map["holamwidehebrew"] = '\u05B9';
            map["honokhukthai"] = '\u0E2E';
            map["hookabovecomb"] = '\u0309';
            map["hookcmb"] = '\u0309';
            map["hookpalatalizedbelowcmb"] = '\u0321';
            map["hookretroflexbelowcmb"] = '\u0322';
            map["hoonsquare"] = '\u3342';
            map["horicoptic"] = '\u03E9';
            map["horizontalbar"] = '\u2015';
            map["horncmb"] = '\u031B';
            map["hotsprings"] = '\u2668';
            map["house"] = '\u2302';
            map["hparen"] = '\u24A3';
            map["hsuperior"] = '\u02B0';
            map["hturned"] = '\u0265';
            map["huhiragana"] = '\u3075';
            map["huiitosquare"] = '\u3333';
            map["hukatakana"] = '\u30D5';
            map["hukatakanahalfwidth"] = '\uFF8C';
            map["hungarumlaut"] = '\u02DD';
            map["hungarumlautcmb"] = '\u030B';
            map["hv"] = '\u0195';
            map["hyphen"] = '\u002D';
            map["hypheninferior"] = '\uF6E5';
            map["hyphenmonospace"] = '\uFF0D';
            map["hyphensmall"] = '\uFE63';
            map["hyphensuperior"] = '\uF6E6';
            map["hyphentwo"] = '\u2010';
            map["i"] = '\u0069';
            map["iacute"] = '\u00ED';
            map["iacyrillic"] = '\u044F';
            map["ibengali"] = '\u0987';
            map["ibopomofo"] = '\u3127';
            map["ibreve"] = '\u012D';
            map["icaron"] = '\u01D0';
            map["icircle"] = '\u24D8';
            map["icircumflex"] = '\u00EE';
            map["icyrillic"] = '\u0456';
            map["idblgrave"] = '\u0209';
            map["ideographearthcircle"] = '\u328F';
            map["ideographfirecircle"] = '\u328B';
            map["ideographicallianceparen"] = '\u323F';
            map["ideographiccallparen"] = '\u323A';
            map["ideographiccentrecircle"] = '\u32A5';
            map["ideographicclose"] = '\u3006';
            map["ideographiccomma"] = '\u3001';
            map["ideographiccommaleft"] = '\uFF64';
            map["ideographiccongratulationparen"] = '\u3237';
            map["ideographiccorrectcircle"] = '\u32A3';
            map["ideographicearthparen"] = '\u322F';
            map["ideographicenterpriseparen"] = '\u323D';
            map["ideographicexcellentcircle"] = '\u329D';
            map["ideographicfestivalparen"] = '\u3240';
            map["ideographicfinancialcircle"] = '\u3296';
            map["ideographicfinancialparen"] = '\u3236';
            map["ideographicfireparen"] = '\u322B';
            map["ideographichaveparen"] = '\u3232';
            map["ideographichighcircle"] = '\u32A4';
            map["ideographiciterationmark"] = '\u3005';
            map["ideographiclaborcircle"] = '\u3298';
            map["ideographiclaborparen"] = '\u3238';
            map["ideographicleftcircle"] = '\u32A7';
            map["ideographiclowcircle"] = '\u32A6';
            map["ideographicmedicinecircle"] = '\u32A9';
            map["ideographicmetalparen"] = '\u322E';
            map["ideographicmoonparen"] = '\u322A';
            map["ideographicnameparen"] = '\u3234';
            map["ideographicperiod"] = '\u3002';
            map["ideographicprintcircle"] = '\u329E';
            map["ideographicreachparen"] = '\u3243';
            map["ideographicrepresentparen"] = '\u3239';
            map["ideographicresourceparen"] = '\u323E';
            map["ideographicrightcircle"] = '\u32A8';
            map["ideographicsecretcircle"] = '\u3299';
            map["ideographicselfparen"] = '\u3242';
            map["ideographicsocietyparen"] = '\u3233';
            map["ideographicspace"] = '\u3000';
            map["ideographicspecialparen"] = '\u3235';
            map["ideographicstockparen"] = '\u3231';
            map["ideographicstudyparen"] = '\u323B';
            map["ideographicsunparen"] = '\u3230';
            map["ideographicsuperviseparen"] = '\u323C';
            map["ideographicwaterparen"] = '\u322C';
            map["ideographicwoodparen"] = '\u322D';
            map["ideographiczero"] = '\u3007';
            map["ideographmetalcircle"] = '\u328E';
            map["ideographmooncircle"] = '\u328A';
            map["ideographnamecircle"] = '\u3294';
            map["ideographsuncircle"] = '\u3290';
            map["ideographwatercircle"] = '\u328C';
            map["ideographwoodcircle"] = '\u328D';
            map["ideva"] = '\u0907';
            map["idieresis"] = '\u00EF';
            map["idieresisacute"] = '\u1E2F';
            map["idieresiscyrillic"] = '\u04E5';
            map["idotbelow"] = '\u1ECB';
            map["iebrevecyrillic"] = '\u04D7';
            map["iecyrillic"] = '\u0435';
            map["ieungacirclekorean"] = '\u3275';
            map["ieungaparenkorean"] = '\u3215';
            map["ieungcirclekorean"] = '\u3267';
            map["ieungkorean"] = '\u3147';
            map["ieungparenkorean"] = '\u3207';
            map["igrave"] = '\u00EC';
            map["igujarati"] = '\u0A87';
            map["igurmukhi"] = '\u0A07';
            map["ihiragana"] = '\u3044';
            map["ihookabove"] = '\u1EC9';
            map["iibengali"] = '\u0988';
            map["iicyrillic"] = '\u0438';
            map["iideva"] = '\u0908';
            map["iigujarati"] = '\u0A88';
            map["iigurmukhi"] = '\u0A08';
            map["iimatragurmukhi"] = '\u0A40';
            map["iinvertedbreve"] = '\u020B';
            map["iishortcyrillic"] = '\u0439';
            map["iivowelsignbengali"] = '\u09C0';
            map["iivowelsigndeva"] = '\u0940';
            map["iivowelsigngujarati"] = '\u0AC0';
            map["ij"] = '\u0133';
            map["ikatakana"] = '\u30A4';
            map["ikatakanahalfwidth"] = '\uFF72';
            map["ikorean"] = '\u3163';
            map["ilde"] = '\u02DC';
            map["iluyhebrew"] = '\u05AC';
            map["imacron"] = '\u012B';
            map["imacroncyrillic"] = '\u04E3';
            map["imageorapproximatelyequal"] = '\u2253';
            map["imatragurmukhi"] = '\u0A3F';
            map["imonospace"] = '\uFF49';
            map["increment"] = '\u2206';
            map["infinity"] = '\u221E';
            map["iniarmenian"] = '\u056B';
            map["integral"] = '\u222B';
            map["integralbottom"] = '\u2321';
            map["integralbt"] = '\u2321';
            map["integralex"] = '\uF8F5';
            map["integraltop"] = '\u2320';
            map["integraltp"] = '\u2320';
            map["intersection"] = '\u2229';
            map["intisquare"] = '\u3305';
            map["invbullet"] = '\u25D8';
            map["invcircle"] = '\u25D9';
            map["invsmileface"] = '\u263B';
            map["iocyrillic"] = '\u0451';
            map["iogonek"] = '\u012F';
            map["iota"] = '\u03B9';
            map["iotadieresis"] = '\u03CA';
            map["iotadieresistonos"] = '\u0390';
            map["iotalatin"] = '\u0269';
            map["iotatonos"] = '\u03AF';
            map["iparen"] = '\u24A4';
            map["irigurmukhi"] = '\u0A72';
            map["ismallhiragana"] = '\u3043';
            map["ismallkatakana"] = '\u30A3';
            map["ismallkatakanahalfwidth"] = '\uFF68';
            map["issharbengali"] = '\u09FA';
            map["istroke"] = '\u0268';
            map["isuperior"] = '\uF6ED';
            map["iterationhiragana"] = '\u309D';
            map["iterationkatakana"] = '\u30FD';
            map["itilde"] = '\u0129';
            map["itildebelow"] = '\u1E2D';
            map["iubopomofo"] = '\u3129';
            map["iucyrillic"] = '\u044E';
            map["ivowelsignbengali"] = '\u09BF';
            map["ivowelsigndeva"] = '\u093F';
            map["ivowelsigngujarati"] = '\u0ABF';
            map["izhitsacyrillic"] = '\u0475';
            map["izhitsadblgravecyrillic"] = '\u0477';
            map["j"] = '\u006A';
            map["jaarmenian"] = '\u0571';
            map["jabengali"] = '\u099C';
            map["jadeva"] = '\u091C';
            map["jagujarati"] = '\u0A9C';
            map["jagurmukhi"] = '\u0A1C';
            map["jbopomofo"] = '\u3110';
            map["jcaron"] = '\u01F0';
            map["jcircle"] = '\u24D9';
            map["jcircumflex"] = '\u0135';
            map["jcrossedtail"] = '\u029D';
            map["jdotlessstroke"] = '\u025F';
            map["jecyrillic"] = '\u0458';
            map["jeemarabic"] = '\u062C';
            map["jeemfinalarabic"] = '\uFE9E';
            map["jeeminitialarabic"] = '\uFE9F';
            map["jeemmedialarabic"] = '\uFEA0';
            map["jeharabic"] = '\u0698';
            map["jehfinalarabic"] = '\uFB8B';
            map["jhabengali"] = '\u099D';
            map["jhadeva"] = '\u091D';
            map["jhagujarati"] = '\u0A9D';
            map["jhagurmukhi"] = '\u0A1D';
            map["jheharmenian"] = '\u057B';
            map["jis"] = '\u3004';
            map["jmonospace"] = '\uFF4A';
            map["jparen"] = '\u24A5';
            map["jsuperior"] = '\u02B2';
            map["k"] = '\u006B';
            map["kabashkircyrillic"] = '\u04A1';
            map["kabengali"] = '\u0995';
            map["kacute"] = '\u1E31';
            map["kacyrillic"] = '\u043A';
            map["kadescendercyrillic"] = '\u049B';
            map["kadeva"] = '\u0915';
            map["kaf"] = '\u05DB';
            map["kafarabic"] = '\u0643';
            map["kafdagesh"] = '\uFB3B';
            map["kafdageshhebrew"] = '\uFB3B';
            map["kaffinalarabic"] = '\uFEDA';
            map["kafhebrew"] = '\u05DB';
            map["kafinitialarabic"] = '\uFEDB';
            map["kafmedialarabic"] = '\uFEDC';
            map["kafrafehebrew"] = '\uFB4D';
            map["kagujarati"] = '\u0A95';
            map["kagurmukhi"] = '\u0A15';
            map["kahiragana"] = '\u304B';
            map["kahookcyrillic"] = '\u04C4';
            map["kakatakana"] = '\u30AB';
            map["kakatakanahalfwidth"] = '\uFF76';
            map["kappa"] = '\u03BA';
            map["kappasymbolgreek"] = '\u03F0';
            map["kapyeounmieumkorean"] = '\u3171';
            map["kapyeounphieuphkorean"] = '\u3184';
            map["kapyeounpieupkorean"] = '\u3178';
            map["kapyeounssangpieupkorean"] = '\u3179';
            map["karoriisquare"] = '\u330D';
            map["kashidaautoarabic"] = '\u0640';
            map["kashidaautonosidebearingarabic"] = '\u0640';
            map["kasmallkatakana"] = '\u30F5';
            map["kasquare"] = '\u3384';
            map["kasraarabic"] = '\u0650';
            map["kasratanarabic"] = '\u064D';
            map["kastrokecyrillic"] = '\u049F';
            map["katahiraprolongmarkhalfwidth"] = '\uFF70';
            map["kaverticalstrokecyrillic"] = '\u049D';
            map["kbopomofo"] = '\u310E';
            map["kcalsquare"] = '\u3389';
            map["kcaron"] = '\u01E9';
            map["kcedilla"] = '\u0137';
            map["kcircle"] = '\u24DA';
            map["kcommaaccent"] = '\u0137';
            map["kdotbelow"] = '\u1E33';
            map["keharmenian"] = '\u0584';
            map["kehiragana"] = '\u3051';
            map["kekatakana"] = '\u30B1';
            map["kekatakanahalfwidth"] = '\uFF79';
            map["kenarmenian"] = '\u056F';
            map["kesmallkatakana"] = '\u30F6';
            map["kgreenlandic"] = '\u0138';
            map["khabengali"] = '\u0996';
            map["khacyrillic"] = '\u0445';
            map["khadeva"] = '\u0916';
            map["khagujarati"] = '\u0A96';
            map["khagurmukhi"] = '\u0A16';
            map["khaharabic"] = '\u062E';
            map["khahfinalarabic"] = '\uFEA6';
            map["khahinitialarabic"] = '\uFEA7';
            map["khahmedialarabic"] = '\uFEA8';
            map["kheicoptic"] = '\u03E7';
            map["khhadeva"] = '\u0959';
            map["khhagurmukhi"] = '\u0A59';
            map["khieukhacirclekorean"] = '\u3278';
            map["khieukhaparenkorean"] = '\u3218';
            map["khieukhcirclekorean"] = '\u326A';
            map["khieukhkorean"] = '\u314B';
            map["khieukhparenkorean"] = '\u320A';
            map["khokhaithai"] = '\u0E02';
            map["khokhonthai"] = '\u0E05';
            map["khokhuatthai"] = '\u0E03';
            map["khokhwaithai"] = '\u0E04';
            map["khomutthai"] = '\u0E5B';
            map["khook"] = '\u0199';
            map["khorakhangthai"] = '\u0E06';
            map["khzsquare"] = '\u3391';
            map["kihiragana"] = '\u304D';
            map["kikatakana"] = '\u30AD';
            map["kikatakanahalfwidth"] = '\uFF77';
            map["kiroguramusquare"] = '\u3315';
            map["kiromeetorusquare"] = '\u3316';
            map["kirosquare"] = '\u3314';
            map["kiyeokacirclekorean"] = '\u326E';
            map["kiyeokaparenkorean"] = '\u320E';
            map["kiyeokcirclekorean"] = '\u3260';
            map["kiyeokkorean"] = '\u3131';
            map["kiyeokparenkorean"] = '\u3200';
            map["kiyeoksioskorean"] = '\u3133';
            map["kjecyrillic"] = '\u045C';
            map["klinebelow"] = '\u1E35';
            map["klsquare"] = '\u3398';
            map["kmcubedsquare"] = '\u33A6';
            map["kmonospace"] = '\uFF4B';
            map["kmsquaredsquare"] = '\u33A2';
            map["kohiragana"] = '\u3053';
            map["kohmsquare"] = '\u33C0';
            map["kokaithai"] = '\u0E01';
            map["kokatakana"] = '\u30B3';
            map["kokatakanahalfwidth"] = '\uFF7A';
            map["kooposquare"] = '\u331E';
            map["koppacyrillic"] = '\u0481';
            map["koreanstandardsymbol"] = '\u327F';
            map["koroniscmb"] = '\u0343';
            map["kparen"] = '\u24A6';
            map["kpasquare"] = '\u33AA';
            map["ksicyrillic"] = '\u046F';
            map["ktsquare"] = '\u33CF';
            map["kturned"] = '\u029E';
            map["kuhiragana"] = '\u304F';
            map["kukatakana"] = '\u30AF';
            map["kukatakanahalfwidth"] = '\uFF78';
            map["kvsquare"] = '\u33B8';
            map["kwsquare"] = '\u33BE';
            map["l"] = '\u006C';
            map["labengali"] = '\u09B2';
            map["lacute"] = '\u013A';
            map["ladeva"] = '\u0932';
            map["lagujarati"] = '\u0AB2';
            map["lagurmukhi"] = '\u0A32';
            map["lakkhangyaothai"] = '\u0E45';
            map["lamaleffinalarabic"] = '\uFEFC';
            map["lamalefhamzaabovefinalarabic"] = '\uFEF8';
            map["lamalefhamzaaboveisolatedarabic"] = '\uFEF7';
            map["lamalefhamzabelowfinalarabic"] = '\uFEFA';
            map["lamalefhamzabelowisolatedarabic"] = '\uFEF9';
            map["lamalefisolatedarabic"] = '\uFEFB';
            map["lamalefmaddaabovefinalarabic"] = '\uFEF6';
            map["lamalefmaddaaboveisolatedarabic"] = '\uFEF5';
            map["lamarabic"] = '\u0644';
            map["lambda"] = '\u03BB';
            map["lambdastroke"] = '\u019B';
            map["lamed"] = '\u05DC';
            map["lameddagesh"] = '\uFB3C';
            map["lameddageshhebrew"] = '\uFB3C';
            map["lamedhebrew"] = '\u05DC';
            //map["lamedholam"] = '\u05DC'; // should be '05DC 05B9' (multiple codepoints not supported yet)
            //map["lamedholamdagesh"] = '\u05DC'; // should be '05DC 05B9 05BC' (multiple codepoints not supported yet)
            //map["lamedholamdageshhebrew"] = '\u05DC'; // should be '05DC 05B9 05BC' (multiple codepoints not supported yet)
            //map["lamedholamhebrew"] = '\u05DC'; // should be '05DC 05B9' (multiple codepoints not supported yet)
            map["lamfinalarabic"] = '\uFEDE';
            map["lamhahinitialarabic"] = '\uFCCA';
            map["laminitialarabic"] = '\uFEDF';
            map["lamjeeminitialarabic"] = '\uFCC9';
            map["lamkhahinitialarabic"] = '\uFCCB';
            map["lamlamhehisolatedarabic"] = '\uFDF2';
            map["lammedialarabic"] = '\uFEE0';
            map["lammeemhahinitialarabic"] = '\uFD88';
            map["lammeeminitialarabic"] = '\uFCCC';
            //map["lammeemjeeminitialarabic"] = '\uFEDF'; // should be 'FEDF FEE4 FEA0' (multiple codepoints not supported yet)
            //map["lammeemkhahinitialarabic"] = '\uFEDF'; // should be 'FEDF FEE4 FEA8' (multiple codepoints not supported yet)
            map["largecircle"] = '\u25EF';
            map["lbar"] = '\u019A';
            map["lbelt"] = '\u026C';
            map["lbopomofo"] = '\u310C';
            map["lcaron"] = '\u013E';
            map["lcedilla"] = '\u013C';
            map["lcircle"] = '\u24DB';
            map["lcircumflexbelow"] = '\u1E3D';
            map["lcommaaccent"] = '\u013C';
            map["ldot"] = '\u0140';
            map["ldotaccent"] = '\u0140';
            map["ldotbelow"] = '\u1E37';
            map["ldotbelowmacron"] = '\u1E39';
            map["leftangleabovecmb"] = '\u031A';
            map["lefttackbelowcmb"] = '\u0318';
            map["less"] = '\u003C';
            map["lessequal"] = '\u2264';
            map["lessequalorgreater"] = '\u22DA';
            map["lessmonospace"] = '\uFF1C';
            map["lessorequivalent"] = '\u2272';
            map["lessorgreater"] = '\u2276';
            map["lessoverequal"] = '\u2266';
            map["lesssmall"] = '\uFE64';
            map["lezh"] = '\u026E';
            map["lfblock"] = '\u258C';
            map["lhookretroflex"] = '\u026D';
            map["lira"] = '\u20A4';
            map["liwnarmenian"] = '\u056C';
            map["lj"] = '\u01C9';
            map["ljecyrillic"] = '\u0459';
            map["ll"] = '\uF6C0';
            map["lladeva"] = '\u0933';
            map["llagujarati"] = '\u0AB3';
            map["llinebelow"] = '\u1E3B';
            map["llladeva"] = '\u0934';
            map["llvocalicbengali"] = '\u09E1';
            map["llvocalicdeva"] = '\u0961';
            map["llvocalicvowelsignbengali"] = '\u09E3';
            map["llvocalicvowelsigndeva"] = '\u0963';
            map["lmiddletilde"] = '\u026B';
            map["lmonospace"] = '\uFF4C';
            map["lmsquare"] = '\u33D0';
            map["lochulathai"] = '\u0E2C';
            map["logicaland"] = '\u2227';
            map["logicalnot"] = '\u00AC';
            map["logicalnotreversed"] = '\u2310';
            map["logicalor"] = '\u2228';
            map["lolingthai"] = '\u0E25';
            map["longs"] = '\u017F';
            map["lowlinecenterline"] = '\uFE4E';
            map["lowlinecmb"] = '\u0332';
            map["lowlinedashed"] = '\uFE4D';
            map["lozenge"] = '\u25CA';
            map["lparen"] = '\u24A7';
            map["lslash"] = '\u0142';
            map["lsquare"] = '\u2113';
            map["lsuperior"] = '\uF6EE';
            map["ltshade"] = '\u2591';
            map["luthai"] = '\u0E26';
            map["lvocalicbengali"] = '\u098C';
            map["lvocalicdeva"] = '\u090C';
            map["lvocalicvowelsignbengali"] = '\u09E2';
            map["lvocalicvowelsigndeva"] = '\u0962';
            map["lxsquare"] = '\u33D3';
            map["m"] = '\u006D';
            map["mabengali"] = '\u09AE';
            map["macron"] = '\u00AF';
            map["macronbelowcmb"] = '\u0331';
            map["macroncmb"] = '\u0304';
            map["macronlowmod"] = '\u02CD';
            map["macronmonospace"] = '\uFFE3';
            map["macute"] = '\u1E3F';
            map["madeva"] = '\u092E';
            map["magujarati"] = '\u0AAE';
            map["magurmukhi"] = '\u0A2E';
            map["mahapakhhebrew"] = '\u05A4';
            map["mahapakhlefthebrew"] = '\u05A4';
            map["mahiragana"] = '\u307E';
            map["maichattawalowleftthai"] = '\uF895';
            map["maichattawalowrightthai"] = '\uF894';
            map["maichattawathai"] = '\u0E4B';
            map["maichattawaupperleftthai"] = '\uF893';
            map["maieklowleftthai"] = '\uF88C';
            map["maieklowrightthai"] = '\uF88B';
            map["maiekthai"] = '\u0E48';
            map["maiekupperleftthai"] = '\uF88A';
            map["maihanakatleftthai"] = '\uF884';
            map["maihanakatthai"] = '\u0E31';
            map["maitaikhuleftthai"] = '\uF889';
            map["maitaikhuthai"] = '\u0E47';
            map["maitholowleftthai"] = '\uF88F';
            map["maitholowrightthai"] = '\uF88E';
            map["maithothai"] = '\u0E49';
            map["maithoupperleftthai"] = '\uF88D';
            map["maitrilowleftthai"] = '\uF892';
            map["maitrilowrightthai"] = '\uF891';
            map["maitrithai"] = '\u0E4A';
            map["maitriupperleftthai"] = '\uF890';
            map["maiyamokthai"] = '\u0E46';
            map["makatakana"] = '\u30DE';
            map["makatakanahalfwidth"] = '\uFF8F';
            map["male"] = '\u2642';
            map["mansyonsquare"] = '\u3347';
            map["maqafhebrew"] = '\u05BE';
            map["mars"] = '\u2642';
            map["masoracirclehebrew"] = '\u05AF';
            map["masquare"] = '\u3383';
            map["mbopomofo"] = '\u3107';
            map["mbsquare"] = '\u33D4';
            map["mcircle"] = '\u24DC';
            map["mcubedsquare"] = '\u33A5';
            map["mdotaccent"] = '\u1E41';
            map["mdotbelow"] = '\u1E43';
            map["meemarabic"] = '\u0645';
            map["meemfinalarabic"] = '\uFEE2';
            map["meeminitialarabic"] = '\uFEE3';
            map["meemmedialarabic"] = '\uFEE4';
            map["meemmeeminitialarabic"] = '\uFCD1';
            map["meemmeemisolatedarabic"] = '\uFC48';
            map["meetorusquare"] = '\u334D';
            map["mehiragana"] = '\u3081';
            map["meizierasquare"] = '\u337E';
            map["mekatakana"] = '\u30E1';
            map["mekatakanahalfwidth"] = '\uFF92';
            map["mem"] = '\u05DE';
            map["memdagesh"] = '\uFB3E';
            map["memdageshhebrew"] = '\uFB3E';
            map["memhebrew"] = '\u05DE';
            map["menarmenian"] = '\u0574';
            map["merkhahebrew"] = '\u05A5';
            map["merkhakefulahebrew"] = '\u05A6';
            map["merkhakefulalefthebrew"] = '\u05A6';
            map["merkhalefthebrew"] = '\u05A5';
            map["mhook"] = '\u0271';
            map["mhzsquare"] = '\u3392';
            map["middledotkatakanahalfwidth"] = '\uFF65';
            map["middot"] = '\u00B7';
            map["mieumacirclekorean"] = '\u3272';
            map["mieumaparenkorean"] = '\u3212';
            map["mieumcirclekorean"] = '\u3264';
            map["mieumkorean"] = '\u3141';
            map["mieumpansioskorean"] = '\u3170';
            map["mieumparenkorean"] = '\u3204';
            map["mieumpieupkorean"] = '\u316E';
            map["mieumsioskorean"] = '\u316F';
            map["mihiragana"] = '\u307F';
            map["mikatakana"] = '\u30DF';
            map["mikatakanahalfwidth"] = '\uFF90';
            map["minus"] = '\u2212';
            map["minusbelowcmb"] = '\u0320';
            map["minuscircle"] = '\u2296';
            map["minusmod"] = '\u02D7';
            map["minusplus"] = '\u2213';
            map["minute"] = '\u2032';
            map["miribaarusquare"] = '\u334A';
            map["mirisquare"] = '\u3349';
            map["mlonglegturned"] = '\u0270';
            map["mlsquare"] = '\u3396';
            map["mmcubedsquare"] = '\u33A3';
            map["mmonospace"] = '\uFF4D';
            map["mmsquaredsquare"] = '\u339F';
            map["mohiragana"] = '\u3082';
            map["mohmsquare"] = '\u33C1';
            map["mokatakana"] = '\u30E2';
            map["mokatakanahalfwidth"] = '\uFF93';
            map["molsquare"] = '\u33D6';
            map["momathai"] = '\u0E21';
            map["moverssquare"] = '\u33A7';
            map["moverssquaredsquare"] = '\u33A8';
            map["mparen"] = '\u24A8';
            map["mpasquare"] = '\u33AB';
            map["mssquare"] = '\u33B3';
            map["msuperior"] = '\uF6EF';
            map["mturned"] = '\u026F';
            map["mu"] = '\u00B5';
            map["mu1"] = '\u00B5';
            map["muasquare"] = '\u3382';
            map["muchgreater"] = '\u226B';
            map["muchless"] = '\u226A';
            map["mufsquare"] = '\u338C';
            map["mugreek"] = '\u03BC';
            map["mugsquare"] = '\u338D';
            map["muhiragana"] = '\u3080';
            map["mukatakana"] = '\u30E0';
            map["mukatakanahalfwidth"] = '\uFF91';
            map["mulsquare"] = '\u3395';
            map["multiply"] = '\u00D7';
            map["mumsquare"] = '\u339B';
            map["munahhebrew"] = '\u05A3';
            map["munahlefthebrew"] = '\u05A3';
            map["musicalnote"] = '\u266A';
            map["musicalnotedbl"] = '\u266B';
            map["musicflatsign"] = '\u266D';
            map["musicsharpsign"] = '\u266F';
            map["mussquare"] = '\u33B2';
            map["muvsquare"] = '\u33B6';
            map["muwsquare"] = '\u33BC';
            map["mvmegasquare"] = '\u33B9';
            map["mvsquare"] = '\u33B7';
            map["mwmegasquare"] = '\u33BF';
            map["mwsquare"] = '\u33BD';
            map["n"] = '\u006E';
            map["nabengali"] = '\u09A8';
            map["nabla"] = '\u2207';
            map["nacute"] = '\u0144';
            map["nadeva"] = '\u0928';
            map["nagujarati"] = '\u0AA8';
            map["nagurmukhi"] = '\u0A28';
            map["nahiragana"] = '\u306A';
            map["nakatakana"] = '\u30CA';
            map["nakatakanahalfwidth"] = '\uFF85';
            map["napostrophe"] = '\u0149';
            map["nasquare"] = '\u3381';
            map["nbopomofo"] = '\u310B';
            map["nbspace"] = '\u00A0';
            map["ncaron"] = '\u0148';
            map["ncedilla"] = '\u0146';
            map["ncircle"] = '\u24DD';
            map["ncircumflexbelow"] = '\u1E4B';
            map["ncommaaccent"] = '\u0146';
            map["ndotaccent"] = '\u1E45';
            map["ndotbelow"] = '\u1E47';
            map["nehiragana"] = '\u306D';
            map["nekatakana"] = '\u30CD';
            map["nekatakanahalfwidth"] = '\uFF88';
            map["newsheqelsign"] = '\u20AA';
            map["nfsquare"] = '\u338B';
            map["ngabengali"] = '\u0999';
            map["ngadeva"] = '\u0919';
            map["ngagujarati"] = '\u0A99';
            map["ngagurmukhi"] = '\u0A19';
            map["ngonguthai"] = '\u0E07';
            map["nhiragana"] = '\u3093';
            map["nhookleft"] = '\u0272';
            map["nhookretroflex"] = '\u0273';
            map["nieunacirclekorean"] = '\u326F';
            map["nieunaparenkorean"] = '\u320F';
            map["nieuncieuckorean"] = '\u3135';
            map["nieuncirclekorean"] = '\u3261';
            map["nieunhieuhkorean"] = '\u3136';
            map["nieunkorean"] = '\u3134';
            map["nieunpansioskorean"] = '\u3168';
            map["nieunparenkorean"] = '\u3201';
            map["nieunsioskorean"] = '\u3167';
            map["nieuntikeutkorean"] = '\u3166';
            map["nihiragana"] = '\u306B';
            map["nikatakana"] = '\u30CB';
            map["nikatakanahalfwidth"] = '\uFF86';
            map["nikhahitleftthai"] = '\uF899';
            map["nikhahitthai"] = '\u0E4D';
            map["nine"] = '\u0039';
            map["ninearabic"] = '\u0669';
            map["ninebengali"] = '\u09EF';
            map["ninecircle"] = '\u2468';
            map["ninecircleinversesansserif"] = '\u2792';
            map["ninedeva"] = '\u096F';
            map["ninegujarati"] = '\u0AEF';
            map["ninegurmukhi"] = '\u0A6F';
            map["ninehackarabic"] = '\u0669';
            map["ninehangzhou"] = '\u3029';
            map["nineideographicparen"] = '\u3228';
            map["nineinferior"] = '\u2089';
            map["ninemonospace"] = '\uFF19';
            map["nineoldstyle"] = '\uF739';
            map["nineparen"] = '\u247C';
            map["nineperiod"] = '\u2490';
            map["ninepersian"] = '\u06F9';
            map["nineroman"] = '\u2178';
            map["ninesuperior"] = '\u2079';
            map["nineteencircle"] = '\u2472';
            map["nineteenparen"] = '\u2486';
            map["nineteenperiod"] = '\u249A';
            map["ninethai"] = '\u0E59';
            map["nj"] = '\u01CC';
            map["njecyrillic"] = '\u045A';
            map["nkatakana"] = '\u30F3';
            map["nkatakanahalfwidth"] = '\uFF9D';
            map["nlegrightlong"] = '\u019E';
            map["nlinebelow"] = '\u1E49';
            map["nmonospace"] = '\uFF4E';
            map["nmsquare"] = '\u339A';
            map["nnabengali"] = '\u09A3';
            map["nnadeva"] = '\u0923';
            map["nnagujarati"] = '\u0AA3';
            map["nnagurmukhi"] = '\u0A23';
            map["nnnadeva"] = '\u0929';
            map["nohiragana"] = '\u306E';
            map["nokatakana"] = '\u30CE';
            map["nokatakanahalfwidth"] = '\uFF89';
            map["nonbreakingspace"] = '\u00A0';
            map["nonenthai"] = '\u0E13';
            map["nonuthai"] = '\u0E19';
            map["noonarabic"] = '\u0646';
            map["noonfinalarabic"] = '\uFEE6';
            map["noonghunnaarabic"] = '\u06BA';
            map["noonghunnafinalarabic"] = '\uFB9F';
            //map["noonhehinitialarabic"] = '\uFEE7'; // should be 'FEE7 FEEC' (multiple codepoints not supported yet)
            map["nooninitialarabic"] = '\uFEE7';
            map["noonjeeminitialarabic"] = '\uFCD2';
            map["noonjeemisolatedarabic"] = '\uFC4B';
            map["noonmedialarabic"] = '\uFEE8';
            map["noonmeeminitialarabic"] = '\uFCD5';
            map["noonmeemisolatedarabic"] = '\uFC4E';
            map["noonnoonfinalarabic"] = '\uFC8D';
            map["notcontains"] = '\u220C';
            map["notelement"] = '\u2209';
            map["notelementof"] = '\u2209';
            map["notequal"] = '\u2260';
            map["notgreater"] = '\u226F';
            map["notgreaternorequal"] = '\u2271';
            map["notgreaternorless"] = '\u2279';
            map["notidentical"] = '\u2262';
            map["notless"] = '\u226E';
            map["notlessnorequal"] = '\u2270';
            map["notparallel"] = '\u2226';
            map["notprecedes"] = '\u2280';
            map["notsubset"] = '\u2284';
            map["notsucceeds"] = '\u2281';
            map["notsuperset"] = '\u2285';
            map["nowarmenian"] = '\u0576';
            map["nparen"] = '\u24A9';
            map["nssquare"] = '\u33B1';
            map["nsuperior"] = '\u207F';
            map["ntilde"] = '\u00F1';
            map["nu"] = '\u03BD';
            map["nuhiragana"] = '\u306C';
            map["nukatakana"] = '\u30CC';
            map["nukatakanahalfwidth"] = '\uFF87';
            map["nuktabengali"] = '\u09BC';
            map["nuktadeva"] = '\u093C';
            map["nuktagujarati"] = '\u0ABC';
            map["nuktagurmukhi"] = '\u0A3C';
            map["numbersign"] = '\u0023';
            map["numbersignmonospace"] = '\uFF03';
            map["numbersignsmall"] = '\uFE5F';
            map["numeralsigngreek"] = '\u0374';
            map["numeralsignlowergreek"] = '\u0375';
            map["numero"] = '\u2116';
            map["nun"] = '\u05E0';
            map["nundagesh"] = '\uFB40';
            map["nundageshhebrew"] = '\uFB40';
            map["nunhebrew"] = '\u05E0';
            map["nvsquare"] = '\u33B5';
            map["nwsquare"] = '\u33BB';
            map["nyabengali"] = '\u099E';
            map["nyadeva"] = '\u091E';
            map["nyagujarati"] = '\u0A9E';
            map["nyagurmukhi"] = '\u0A1E';
            map["o"] = '\u006F';
            map["oacute"] = '\u00F3';
            map["oangthai"] = '\u0E2D';
            map["obarred"] = '\u0275';
            map["obarredcyrillic"] = '\u04E9';
            map["obarreddieresiscyrillic"] = '\u04EB';
            map["obengali"] = '\u0993';
            map["obopomofo"] = '\u311B';
            map["obreve"] = '\u014F';
            map["ocandradeva"] = '\u0911';
            map["ocandragujarati"] = '\u0A91';
            map["ocandravowelsigndeva"] = '\u0949';
            map["ocandravowelsigngujarati"] = '\u0AC9';
            map["ocaron"] = '\u01D2';
            map["ocircle"] = '\u24DE';
            map["ocircumflex"] = '\u00F4';
            map["ocircumflexacute"] = '\u1ED1';
            map["ocircumflexdotbelow"] = '\u1ED9';
            map["ocircumflexgrave"] = '\u1ED3';
            map["ocircumflexhookabove"] = '\u1ED5';
            map["ocircumflextilde"] = '\u1ED7';
            map["ocyrillic"] = '\u043E';
            map["odblacute"] = '\u0151';
            map["odblgrave"] = '\u020D';
            map["odeva"] = '\u0913';
            map["odieresis"] = '\u00F6';
            map["odieresiscyrillic"] = '\u04E7';
            map["odotbelow"] = '\u1ECD';
            map["oe"] = '\u0153';
            map["oekorean"] = '\u315A';
            map["ogonek"] = '\u02DB';
            map["ogonekcmb"] = '\u0328';
            map["ograve"] = '\u00F2';
            map["ogujarati"] = '\u0A93';
            map["oharmenian"] = '\u0585';
            map["ohiragana"] = '\u304A';
            map["ohookabove"] = '\u1ECF';
            map["ohorn"] = '\u01A1';
            map["ohornacute"] = '\u1EDB';
            map["ohorndotbelow"] = '\u1EE3';
            map["ohorngrave"] = '\u1EDD';
            map["ohornhookabove"] = '\u1EDF';
            map["ohorntilde"] = '\u1EE1';
            map["ohungarumlaut"] = '\u0151';
            map["oi"] = '\u01A3';
            map["oinvertedbreve"] = '\u020F';
            map["okatakana"] = '\u30AA';
            map["okatakanahalfwidth"] = '\uFF75';
            map["okorean"] = '\u3157';
            map["olehebrew"] = '\u05AB';
            map["omacron"] = '\u014D';
            map["omacronacute"] = '\u1E53';
            map["omacrongrave"] = '\u1E51';
            map["omdeva"] = '\u0950';
            map["omega"] = '\u03C9';
            map["omega1"] = '\u03D6';
            map["omegacyrillic"] = '\u0461';
            map["omegalatinclosed"] = '\u0277';
            map["omegaroundcyrillic"] = '\u047B';
            map["omegatitlocyrillic"] = '\u047D';
            map["omegatonos"] = '\u03CE';
            map["omgujarati"] = '\u0AD0';
            map["omicron"] = '\u03BF';
            map["omicrontonos"] = '\u03CC';
            map["omonospace"] = '\uFF4F';
            map["one"] = '\u0031';
            map["onearabic"] = '\u0661';
            map["onebengali"] = '\u09E7';
            map["onecircle"] = '\u2460';
            map["onecircleinversesansserif"] = '\u278A';
            map["onedeva"] = '\u0967';
            map["onedotenleader"] = '\u2024';
            map["oneeighth"] = '\u215B';
            map["onefitted"] = '\uF6DC';
            map["onegujarati"] = '\u0AE7';
            map["onegurmukhi"] = '\u0A67';
            map["onehackarabic"] = '\u0661';
            map["onehalf"] = '\u00BD';
            map["onehangzhou"] = '\u3021';
            map["oneideographicparen"] = '\u3220';
            map["oneinferior"] = '\u2081';
            map["onemonospace"] = '\uFF11';
            map["onenumeratorbengali"] = '\u09F4';
            map["oneoldstyle"] = '\uF731';
            map["oneparen"] = '\u2474';
            map["oneperiod"] = '\u2488';
            map["onepersian"] = '\u06F1';
            map["onequarter"] = '\u00BC';
            map["oneroman"] = '\u2170';
            map["onesuperior"] = '\u00B9';
            map["onethai"] = '\u0E51';
            map["onethird"] = '\u2153';
            map["oogonek"] = '\u01EB';
            map["oogonekmacron"] = '\u01ED';
            map["oogurmukhi"] = '\u0A13';
            map["oomatragurmukhi"] = '\u0A4B';
            map["oopen"] = '\u0254';
            map["oparen"] = '\u24AA';
            map["openbullet"] = '\u25E6';
            map["option"] = '\u2325';
            map["ordfeminine"] = '\u00AA';
            map["ordmasculine"] = '\u00BA';
            map["orthogonal"] = '\u221F';
            map["oshortdeva"] = '\u0912';
            map["oshortvowelsigndeva"] = '\u094A';
            map["oslash"] = '\u00F8';
            map["oslashacute"] = '\u01FF';
            map["osmallhiragana"] = '\u3049';
            map["osmallkatakana"] = '\u30A9';
            map["osmallkatakanahalfwidth"] = '\uFF6B';
            map["ostrokeacute"] = '\u01FF';
            map["osuperior"] = '\uF6F0';
            map["otcyrillic"] = '\u047F';
            map["otilde"] = '\u00F5';
            map["otildeacute"] = '\u1E4D';
            map["otildedieresis"] = '\u1E4F';
            map["oubopomofo"] = '\u3121';
            map["overline"] = '\u203E';
            map["overlinecenterline"] = '\uFE4A';
            map["overlinecmb"] = '\u0305';
            map["overlinedashed"] = '\uFE49';
            map["overlinedblwavy"] = '\uFE4C';
            map["overlinewavy"] = '\uFE4B';
            map["overscore"] = '\u00AF';
            map["ovowelsignbengali"] = '\u09CB';
            map["ovowelsigndeva"] = '\u094B';
            map["ovowelsigngujarati"] = '\u0ACB';
            map["p"] = '\u0070';
            map["paampssquare"] = '\u3380';
            map["paasentosquare"] = '\u332B';
            map["pabengali"] = '\u09AA';
            map["pacute"] = '\u1E55';
            map["padeva"] = '\u092A';
            map["pagedown"] = '\u21DF';
            map["pageup"] = '\u21DE';
            map["pagujarati"] = '\u0AAA';
            map["pagurmukhi"] = '\u0A2A';
            map["pahiragana"] = '\u3071';
            map["paiyannoithai"] = '\u0E2F';
            map["pakatakana"] = '\u30D1';
            map["palatalizationcyrilliccmb"] = '\u0484';
            map["palochkacyrillic"] = '\u04C0';
            map["pansioskorean"] = '\u317F';
            map["paragraph"] = '\u00B6';
            map["parallel"] = '\u2225';
            map["parenleft"] = '\u0028';
            map["parenleftaltonearabic"] = '\uFD3E';
            map["parenleftbt"] = '\uF8ED';
            map["parenleftex"] = '\uF8EC';
            map["parenleftinferior"] = '\u208D';
            map["parenleftmonospace"] = '\uFF08';
            map["parenleftsmall"] = '\uFE59';
            map["parenleftsuperior"] = '\u207D';
            map["parenlefttp"] = '\uF8EB';
            map["parenleftvertical"] = '\uFE35';
            map["parenright"] = '\u0029';
            map["parenrightaltonearabic"] = '\uFD3F';
            map["parenrightbt"] = '\uF8F8';
            map["parenrightex"] = '\uF8F7';
            map["parenrightinferior"] = '\u208E';
            map["parenrightmonospace"] = '\uFF09';
            map["parenrightsmall"] = '\uFE5A';
            map["parenrightsuperior"] = '\u207E';
            map["parenrighttp"] = '\uF8F6';
            map["parenrightvertical"] = '\uFE36';
            map["partialdiff"] = '\u2202';
            map["paseqhebrew"] = '\u05C0';
            map["pashtahebrew"] = '\u0599';
            map["pasquare"] = '\u33A9';
            map["patah"] = '\u05B7';
            map["patah11"] = '\u05B7';
            map["patah1d"] = '\u05B7';
            map["patah2a"] = '\u05B7';
            map["patahhebrew"] = '\u05B7';
            map["patahnarrowhebrew"] = '\u05B7';
            map["patahquarterhebrew"] = '\u05B7';
            map["patahwidehebrew"] = '\u05B7';
            map["pazerhebrew"] = '\u05A1';
            map["pbopomofo"] = '\u3106';
            map["pcircle"] = '\u24DF';
            map["pdotaccent"] = '\u1E57';
            map["pe"] = '\u05E4';
            map["pecyrillic"] = '\u043F';
            map["pedagesh"] = '\uFB44';
            map["pedageshhebrew"] = '\uFB44';
            map["peezisquare"] = '\u333B';
            map["pefinaldageshhebrew"] = '\uFB43';
            map["peharabic"] = '\u067E';
            map["peharmenian"] = '\u057A';
            map["pehebrew"] = '\u05E4';
            map["pehfinalarabic"] = '\uFB57';
            map["pehinitialarabic"] = '\uFB58';
            map["pehiragana"] = '\u307A';
            map["pehmedialarabic"] = '\uFB59';
            map["pekatakana"] = '\u30DA';
            map["pemiddlehookcyrillic"] = '\u04A7';
            map["perafehebrew"] = '\uFB4E';
            map["percent"] = '\u0025';
            map["percentarabic"] = '\u066A';
            map["percentmonospace"] = '\uFF05';
            map["percentsmall"] = '\uFE6A';
            map["period"] = '\u002E';
            map["periodarmenian"] = '\u0589';
            map["periodcentered"] = '\u00B7';
            map["periodhalfwidth"] = '\uFF61';
            map["periodinferior"] = '\uF6E7';
            map["periodmonospace"] = '\uFF0E';
            map["periodsmall"] = '\uFE52';
            map["periodsuperior"] = '\uF6E8';
            map["perispomenigreekcmb"] = '\u0342';
            map["perpendicular"] = '\u22A5';
            map["perthousand"] = '\u2030';
            map["peseta"] = '\u20A7';
            map["pfsquare"] = '\u338A';
            map["phabengali"] = '\u09AB';
            map["phadeva"] = '\u092B';
            map["phagujarati"] = '\u0AAB';
            map["phagurmukhi"] = '\u0A2B';
            map["phi"] = '\u03C6';
            map["phi1"] = '\u03D5';
            map["phieuphacirclekorean"] = '\u327A';
            map["phieuphaparenkorean"] = '\u321A';
            map["phieuphcirclekorean"] = '\u326C';
            map["phieuphkorean"] = '\u314D';
            map["phieuphparenkorean"] = '\u320C';
            map["philatin"] = '\u0278';
            map["phinthuthai"] = '\u0E3A';
            map["phisymbolgreek"] = '\u03D5';
            map["phook"] = '\u01A5';
            map["phophanthai"] = '\u0E1E';
            map["phophungthai"] = '\u0E1C';
            map["phosamphaothai"] = '\u0E20';
            map["pi"] = '\u03C0';
            map["pieupacirclekorean"] = '\u3273';
            map["pieupaparenkorean"] = '\u3213';
            map["pieupcieuckorean"] = '\u3176';
            map["pieupcirclekorean"] = '\u3265';
            map["pieupkiyeokkorean"] = '\u3172';
            map["pieupkorean"] = '\u3142';
            map["pieupparenkorean"] = '\u3205';
            map["pieupsioskiyeokkorean"] = '\u3174';
            map["pieupsioskorean"] = '\u3144';
            map["pieupsiostikeutkorean"] = '\u3175';
            map["pieupthieuthkorean"] = '\u3177';
            map["pieuptikeutkorean"] = '\u3173';
            map["pihiragana"] = '\u3074';
            map["pikatakana"] = '\u30D4';
            map["pisymbolgreek"] = '\u03D6';
            map["piwrarmenian"] = '\u0583';
            map["plus"] = '\u002B';
            map["plusbelowcmb"] = '\u031F';
            map["pluscircle"] = '\u2295';
            map["plusminus"] = '\u00B1';
            map["plusmod"] = '\u02D6';
            map["plusmonospace"] = '\uFF0B';
            map["plussmall"] = '\uFE62';
            map["plussuperior"] = '\u207A';
            map["pmonospace"] = '\uFF50';
            map["pmsquare"] = '\u33D8';
            map["pohiragana"] = '\u307D';
            map["pointingindexdownwhite"] = '\u261F';
            map["pointingindexleftwhite"] = '\u261C';
            map["pointingindexrightwhite"] = '\u261E';
            map["pointingindexupwhite"] = '\u261D';
            map["pokatakana"] = '\u30DD';
            map["poplathai"] = '\u0E1B';
            map["postalmark"] = '\u3012';
            map["postalmarkface"] = '\u3020';
            map["pparen"] = '\u24AB';
            map["precedes"] = '\u227A';
            map["prescription"] = '\u211E';
            map["primemod"] = '\u02B9';
            map["primereversed"] = '\u2035';
            map["product"] = '\u220F';
            map["projective"] = '\u2305';
            map["prolongedkana"] = '\u30FC';
            map["propellor"] = '\u2318';
            map["propersubset"] = '\u2282';
            map["propersuperset"] = '\u2283';
            map["proportion"] = '\u2237';
            map["proportional"] = '\u221D';
            map["psi"] = '\u03C8';
            map["psicyrillic"] = '\u0471';
            map["psilipneumatacyrilliccmb"] = '\u0486';
            map["pssquare"] = '\u33B0';
            map["puhiragana"] = '\u3077';
            map["pukatakana"] = '\u30D7';
            map["pvsquare"] = '\u33B4';
            map["pwsquare"] = '\u33BA';
            map["q"] = '\u0071';
            map["qadeva"] = '\u0958';
            map["qadmahebrew"] = '\u05A8';
            map["qafarabic"] = '\u0642';
            map["qaffinalarabic"] = '\uFED6';
            map["qafinitialarabic"] = '\uFED7';
            map["qafmedialarabic"] = '\uFED8';
            map["qamats"] = '\u05B8';
            map["qamats10"] = '\u05B8';
            map["qamats1a"] = '\u05B8';
            map["qamats1c"] = '\u05B8';
            map["qamats27"] = '\u05B8';
            map["qamats29"] = '\u05B8';
            map["qamats33"] = '\u05B8';
            map["qamatsde"] = '\u05B8';
            map["qamatshebrew"] = '\u05B8';
            map["qamatsnarrowhebrew"] = '\u05B8';
            map["qamatsqatanhebrew"] = '\u05B8';
            map["qamatsqatannarrowhebrew"] = '\u05B8';
            map["qamatsqatanquarterhebrew"] = '\u05B8';
            map["qamatsqatanwidehebrew"] = '\u05B8';
            map["qamatsquarterhebrew"] = '\u05B8';
            map["qamatswidehebrew"] = '\u05B8';
            map["qarneyparahebrew"] = '\u059F';
            map["qbopomofo"] = '\u3111';
            map["qcircle"] = '\u24E0';
            map["qhook"] = '\u02A0';
            map["qmonospace"] = '\uFF51';
            map["qof"] = '\u05E7';
            map["qofdagesh"] = '\uFB47';
            map["qofdageshhebrew"] = '\uFB47';
            //map["qofhatafpatah"] = '\u05E7'; // should be '05E7 05B2' (multiple codepoints not supported yet)
            //map["qofhatafpatahhebrew"] = '\u05E7'; // should be '05E7 05B2' (multiple codepoints not supported yet)
            //map["qofhatafsegol"] = '\u05E7'; // should be '05E7 05B1' (multiple codepoints not supported yet)
            //map["qofhatafsegolhebrew"] = '\u05E7'; // should be '05E7 05B1' (multiple codepoints not supported yet)
            map["qofhebrew"] = '\u05E7';
            //map["qofhiriq"] = '\u05E7'; // should be '05E7 05B4' (multiple codepoints not supported yet)
            //map["qofhiriqhebrew"] = '\u05E7'; // should be '05E7 05B4' (multiple codepoints not supported yet)
            //map["qofholam"] = '\u05E7'; // should be '05E7 05B9' (multiple codepoints not supported yet)
            //map["qofholamhebrew"] = '\u05E7'; // should be '05E7 05B9' (multiple codepoints not supported yet)
            //map["qofpatah"] = '\u05E7'; // should be '05E7 05B7' (multiple codepoints not supported yet)
            //map["qofpatahhebrew"] = '\u05E7'; // should be '05E7 05B7' (multiple codepoints not supported yet)
            //map["qofqamats"] = '\u05E7'; // should be '05E7 05B8' (multiple codepoints not supported yet)
            //map["qofqamatshebrew"] = '\u05E7'; // should be '05E7 05B8' (multiple codepoints not supported yet)
            //map["qofqubuts"] = '\u05E7'; // should be '05E7 05BB' (multiple codepoints not supported yet)
            //map["qofqubutshebrew"] = '\u05E7'; // should be '05E7 05BB' (multiple codepoints not supported yet)
            //map["qofsegol"] = '\u05E7'; // should be '05E7 05B6' (multiple codepoints not supported yet)
            //map["qofsegolhebrew"] = '\u05E7'; // should be '05E7 05B6' (multiple codepoints not supported yet)
            //map["qofsheva"] = '\u05E7'; // should be '05E7 05B0' (multiple codepoints not supported yet)
            //map["qofshevahebrew"] = '\u05E7'; // should be '05E7 05B0' (multiple codepoints not supported yet)
            //map["qoftsere"] = '\u05E7'; // should be '05E7 05B5' (multiple codepoints not supported yet)
            //map["qoftserehebrew"] = '\u05E7'; // should be '05E7 05B5' (multiple codepoints not supported yet)
            map["qparen"] = '\u24AC';
            map["quarternote"] = '\u2669';
            map["qubuts"] = '\u05BB';
            map["qubuts18"] = '\u05BB';
            map["qubuts25"] = '\u05BB';
            map["qubuts31"] = '\u05BB';
            map["qubutshebrew"] = '\u05BB';
            map["qubutsnarrowhebrew"] = '\u05BB';
            map["qubutsquarterhebrew"] = '\u05BB';
            map["qubutswidehebrew"] = '\u05BB';
            map["question"] = '\u003F';
            map["questionarabic"] = '\u061F';
            map["questionarmenian"] = '\u055E';
            map["questiondown"] = '\u00BF';
            map["questiondownsmall"] = '\uF7BF';
            map["questiongreek"] = '\u037E';
            map["questionmonospace"] = '\uFF1F';
            map["questionsmall"] = '\uF73F';
            map["quotedbl"] = '\u0022';
            map["quotedblbase"] = '\u201E';
            map["quotedblleft"] = '\u201C';
            map["quotedblmonospace"] = '\uFF02';
            map["quotedblprime"] = '\u301E';
            map["quotedblprimereversed"] = '\u301D';
            map["quotedblright"] = '\u201D';
            map["quoteleft"] = '\u2018';
            map["quoteleftreversed"] = '\u201B';
            map["quotereversed"] = '\u201B';
            map["quoteright"] = '\u2019';
            map["quoterightn"] = '\u0149';
            map["quotesinglbase"] = '\u201A';
            map["quotesingle"] = '\u0027';
            map["quotesinglemonospace"] = '\uFF07';
            map["r"] = '\u0072';
            map["raarmenian"] = '\u057C';
            map["rabengali"] = '\u09B0';
            map["racute"] = '\u0155';
            map["radeva"] = '\u0930';
            map["radical"] = '\u221A';
            map["radicalex"] = '\uF8E5';
            map["radoverssquare"] = '\u33AE';
            map["radoverssquaredsquare"] = '\u33AF';
            map["radsquare"] = '\u33AD';
            map["rafe"] = '\u05BF';
            map["rafehebrew"] = '\u05BF';
            map["ragujarati"] = '\u0AB0';
            map["ragurmukhi"] = '\u0A30';
            map["rahiragana"] = '\u3089';
            map["rakatakana"] = '\u30E9';
            map["rakatakanahalfwidth"] = '\uFF97';
            map["ralowerdiagonalbengali"] = '\u09F1';
            map["ramiddlediagonalbengali"] = '\u09F0';
            map["ramshorn"] = '\u0264';
            map["ratio"] = '\u2236';
            map["rbopomofo"] = '\u3116';
            map["rcaron"] = '\u0159';
            map["rcedilla"] = '\u0157';
            map["rcircle"] = '\u24E1';
            map["rcommaaccent"] = '\u0157';
            map["rdblgrave"] = '\u0211';
            map["rdotaccent"] = '\u1E59';
            map["rdotbelow"] = '\u1E5B';
            map["rdotbelowmacron"] = '\u1E5D';
            map["referencemark"] = '\u203B';
            map["reflexsubset"] = '\u2286';
            map["reflexsuperset"] = '\u2287';
            map["registered"] = '\u00AE';
            map["registersans"] = '\uF8E8';
            map["registerserif"] = '\uF6DA';
            map["reharabic"] = '\u0631';
            map["reharmenian"] = '\u0580';
            map["rehfinalarabic"] = '\uFEAE';
            map["rehiragana"] = '\u308C';
            //map["rehyehaleflamarabic"] = '\u0631'; // should be '0631 FEF3 FE8E 0644' (multiple codepoints not supported yet)
            map["rekatakana"] = '\u30EC';
            map["rekatakanahalfwidth"] = '\uFF9A';
            map["resh"] = '\u05E8';
            map["reshdageshhebrew"] = '\uFB48';
            //map["reshhatafpatah"] = '\u05E8'; // should be '05E8 05B2' (multiple codepoints not supported yet)
            //map["reshhatafpatahhebrew"] = '\u05E8'; // should be '05E8 05B2' (multiple codepoints not supported yet)
            //map["reshhatafsegol"] = '\u05E8'; // should be '05E8 05B1' (multiple codepoints not supported yet)
            //map["reshhatafsegolhebrew"] = '\u05E8'; // should be '05E8 05B1' (multiple codepoints not supported yet)
            map["reshhebrew"] = '\u05E8';
            //map["reshhiriq"] = '\u05E8'; // should be '05E8 05B4' (multiple codepoints not supported yet)
            //map["reshhiriqhebrew"] = '\u05E8'; // should be '05E8 05B4' (multiple codepoints not supported yet)
            //map["reshholam"] = '\u05E8'; // should be '05E8 05B9' (multiple codepoints not supported yet)
            //map["reshholamhebrew"] = '\u05E8'; // should be '05E8 05B9' (multiple codepoints not supported yet)
            //map["reshpatah"] = '\u05E8'; // should be '05E8 05B7' (multiple codepoints not supported yet)
            //map["reshpatahhebrew"] = '\u05E8'; // should be '05E8 05B7' (multiple codepoints not supported yet)
            //map["reshqamats"] = '\u05E8'; // should be '05E8 05B8' (multiple codepoints not supported yet)
            //map["reshqamatshebrew"] = '\u05E8'; // should be '05E8 05B8' (multiple codepoints not supported yet)
            //map["reshqubuts"] = '\u05E8'; // should be '05E8 05BB' (multiple codepoints not supported yet)
            //map["reshqubutshebrew"] = '\u05E8'; // should be '05E8 05BB' (multiple codepoints not supported yet)
            //map["reshsegol"] = '\u05E8'; // should be '05E8 05B6' (multiple codepoints not supported yet)
            //map["reshsegolhebrew"] = '\u05E8'; // should be '05E8 05B6' (multiple codepoints not supported yet)
            //map["reshsheva"] = '\u05E8'; // should be '05E8 05B0' (multiple codepoints not supported yet)
            //map["reshshevahebrew"] = '\u05E8'; // should be '05E8 05B0' (multiple codepoints not supported yet)
            //map["reshtsere"] = '\u05E8'; // should be '05E8 05B5' (multiple codepoints not supported yet)
            //map["reshtserehebrew"] = '\u05E8'; // should be '05E8 05B5' (multiple codepoints not supported yet)
            map["reversedtilde"] = '\u223D';
            map["reviahebrew"] = '\u0597';
            map["reviamugrashhebrew"] = '\u0597';
            map["revlogicalnot"] = '\u2310';
            map["rfishhook"] = '\u027E';
            map["rfishhookreversed"] = '\u027F';
            map["rhabengali"] = '\u09DD';
            map["rhadeva"] = '\u095D';
            map["rho"] = '\u03C1';
            map["rhook"] = '\u027D';
            map["rhookturned"] = '\u027B';
            map["rhookturnedsuperior"] = '\u02B5';
            map["rhosymbolgreek"] = '\u03F1';
            map["rhotichookmod"] = '\u02DE';
            map["rieulacirclekorean"] = '\u3271';
            map["rieulaparenkorean"] = '\u3211';
            map["rieulcirclekorean"] = '\u3263';
            map["rieulhieuhkorean"] = '\u3140';
            map["rieulkiyeokkorean"] = '\u313A';
            map["rieulkiyeoksioskorean"] = '\u3169';
            map["rieulkorean"] = '\u3139';
            map["rieulmieumkorean"] = '\u313B';
            map["rieulpansioskorean"] = '\u316C';
            map["rieulparenkorean"] = '\u3203';
            map["rieulphieuphkorean"] = '\u313F';
            map["rieulpieupkorean"] = '\u313C';
            map["rieulpieupsioskorean"] = '\u316B';
            map["rieulsioskorean"] = '\u313D';
            map["rieulthieuthkorean"] = '\u313E';
            map["rieultikeutkorean"] = '\u316A';
            map["rieulyeorinhieuhkorean"] = '\u316D';
            map["rightangle"] = '\u221F';
            map["righttackbelowcmb"] = '\u0319';
            map["righttriangle"] = '\u22BF';
            map["rihiragana"] = '\u308A';
            map["rikatakana"] = '\u30EA';
            map["rikatakanahalfwidth"] = '\uFF98';
            map["ring"] = '\u02DA';
            map["ringbelowcmb"] = '\u0325';
            map["ringcmb"] = '\u030A';
            map["ringhalfleft"] = '\u02BF';
            map["ringhalfleftarmenian"] = '\u0559';
            map["ringhalfleftbelowcmb"] = '\u031C';
            map["ringhalfleftcentered"] = '\u02D3';
            map["ringhalfright"] = '\u02BE';
            map["ringhalfrightbelowcmb"] = '\u0339';
            map["ringhalfrightcentered"] = '\u02D2';
            map["rinvertedbreve"] = '\u0213';
            map["rittorusquare"] = '\u3351';
            map["rlinebelow"] = '\u1E5F';
            map["rlongleg"] = '\u027C';
            map["rlonglegturned"] = '\u027A';
            map["rmonospace"] = '\uFF52';
            map["rohiragana"] = '\u308D';
            map["rokatakana"] = '\u30ED';
            map["rokatakanahalfwidth"] = '\uFF9B';
            map["roruathai"] = '\u0E23';
            map["rparen"] = '\u24AD';
            map["rrabengali"] = '\u09DC';
            map["rradeva"] = '\u0931';
            map["rragurmukhi"] = '\u0A5C';
            map["rreharabic"] = '\u0691';
            map["rrehfinalarabic"] = '\uFB8D';
            map["rrvocalicbengali"] = '\u09E0';
            map["rrvocalicdeva"] = '\u0960';
            map["rrvocalicgujarati"] = '\u0AE0';
            map["rrvocalicvowelsignbengali"] = '\u09C4';
            map["rrvocalicvowelsigndeva"] = '\u0944';
            map["rrvocalicvowelsigngujarati"] = '\u0AC4';
            map["rsuperior"] = '\uF6F1';
            map["rtblock"] = '\u2590';
            map["rturned"] = '\u0279';
            map["rturnedsuperior"] = '\u02B4';
            map["ruhiragana"] = '\u308B';
            map["rukatakana"] = '\u30EB';
            map["rukatakanahalfwidth"] = '\uFF99';
            map["rupeemarkbengali"] = '\u09F2';
            map["rupeesignbengali"] = '\u09F3';
            map["rupiah"] = '\uF6DD';
            map["ruthai"] = '\u0E24';
            map["rvocalicbengali"] = '\u098B';
            map["rvocalicdeva"] = '\u090B';
            map["rvocalicgujarati"] = '\u0A8B';
            map["rvocalicvowelsignbengali"] = '\u09C3';
            map["rvocalicvowelsigndeva"] = '\u0943';
            map["rvocalicvowelsigngujarati"] = '\u0AC3';
            map["s"] = '\u0073';
            map["sabengali"] = '\u09B8';
            map["sacute"] = '\u015B';
            map["sacutedotaccent"] = '\u1E65';
            map["sadarabic"] = '\u0635';
            map["sadeva"] = '\u0938';
            map["sadfinalarabic"] = '\uFEBA';
            map["sadinitialarabic"] = '\uFEBB';
            map["sadmedialarabic"] = '\uFEBC';
            map["sagujarati"] = '\u0AB8';
            map["sagurmukhi"] = '\u0A38';
            map["sahiragana"] = '\u3055';
            map["sakatakana"] = '\u30B5';
            map["sakatakanahalfwidth"] = '\uFF7B';
            map["sallallahoualayhewasallamarabic"] = '\uFDFA';
            map["samekh"] = '\u05E1';
            map["samekhdagesh"] = '\uFB41';
            map["samekhdageshhebrew"] = '\uFB41';
            map["samekhhebrew"] = '\u05E1';
            map["saraaathai"] = '\u0E32';
            map["saraaethai"] = '\u0E41';
            map["saraaimaimalaithai"] = '\u0E44';
            map["saraaimaimuanthai"] = '\u0E43';
            map["saraamthai"] = '\u0E33';
            map["saraathai"] = '\u0E30';
            map["saraethai"] = '\u0E40';
            map["saraiileftthai"] = '\uF886';
            map["saraiithai"] = '\u0E35';
            map["saraileftthai"] = '\uF885';
            map["saraithai"] = '\u0E34';
            map["saraothai"] = '\u0E42';
            map["saraueeleftthai"] = '\uF888';
            map["saraueethai"] = '\u0E37';
            map["saraueleftthai"] = '\uF887';
            map["sarauethai"] = '\u0E36';
            map["sarauthai"] = '\u0E38';
            map["sarauuthai"] = '\u0E39';
            map["sbopomofo"] = '\u3119';
            map["scaron"] = '\u0161';
            map["scarondotaccent"] = '\u1E67';
            map["scedilla"] = '\u015F';
            map["schwa"] = '\u0259';
            map["schwacyrillic"] = '\u04D9';
            map["schwadieresiscyrillic"] = '\u04DB';
            map["schwahook"] = '\u025A';
            map["scircle"] = '\u24E2';
            map["scircumflex"] = '\u015D';
            map["scommaaccent"] = '\u0219';
            map["sdotaccent"] = '\u1E61';
            map["sdotbelow"] = '\u1E63';
            map["sdotbelowdotaccent"] = '\u1E69';
            map["seagullbelowcmb"] = '\u033C';
            map["second"] = '\u2033';
            map["secondtonechinese"] = '\u02CA';
            map["section"] = '\u00A7';
            map["seenarabic"] = '\u0633';
            map["seenfinalarabic"] = '\uFEB2';
            map["seeninitialarabic"] = '\uFEB3';
            map["seenmedialarabic"] = '\uFEB4';
            map["segol"] = '\u05B6';
            map["segol13"] = '\u05B6';
            map["segol1f"] = '\u05B6';
            map["segol2c"] = '\u05B6';
            map["segolhebrew"] = '\u05B6';
            map["segolnarrowhebrew"] = '\u05B6';
            map["segolquarterhebrew"] = '\u05B6';
            map["segoltahebrew"] = '\u0592';
            map["segolwidehebrew"] = '\u05B6';
            map["seharmenian"] = '\u057D';
            map["sehiragana"] = '\u305B';
            map["sekatakana"] = '\u30BB';
            map["sekatakanahalfwidth"] = '\uFF7E';
            map["semicolon"] = '\u003B';
            map["semicolonarabic"] = '\u061B';
            map["semicolonmonospace"] = '\uFF1B';
            map["semicolonsmall"] = '\uFE54';
            map["semivoicedmarkkana"] = '\u309C';
            map["semivoicedmarkkanahalfwidth"] = '\uFF9F';
            map["sentisquare"] = '\u3322';
            map["sentosquare"] = '\u3323';
            map["seven"] = '\u0037';
            map["sevenarabic"] = '\u0667';
            map["sevenbengali"] = '\u09ED';
            map["sevencircle"] = '\u2466';
            map["sevencircleinversesansserif"] = '\u2790';
            map["sevendeva"] = '\u096D';
            map["seveneighths"] = '\u215E';
            map["sevengujarati"] = '\u0AED';
            map["sevengurmukhi"] = '\u0A6D';
            map["sevenhackarabic"] = '\u0667';
            map["sevenhangzhou"] = '\u3027';
            map["sevenideographicparen"] = '\u3226';
            map["seveninferior"] = '\u2087';
            map["sevenmonospace"] = '\uFF17';
            map["sevenoldstyle"] = '\uF737';
            map["sevenparen"] = '\u247A';
            map["sevenperiod"] = '\u248E';
            map["sevenpersian"] = '\u06F7';
            map["sevenroman"] = '\u2176';
            map["sevensuperior"] = '\u2077';
            map["seventeencircle"] = '\u2470';
            map["seventeenparen"] = '\u2484';
            map["seventeenperiod"] = '\u2498';
            map["seventhai"] = '\u0E57';
            map["sfthyphen"] = '\u00AD';
            map["shaarmenian"] = '\u0577';
            map["shabengali"] = '\u09B6';
            map["shacyrillic"] = '\u0448';
            map["shaddaarabic"] = '\u0651';
            map["shaddadammaarabic"] = '\uFC61';
            map["shaddadammatanarabic"] = '\uFC5E';
            map["shaddafathaarabic"] = '\uFC60';
            //map["shaddafathatanarabic"] = '\u0651'; // should be '0651 064B' (multiple codepoints not supported yet)
            map["shaddakasraarabic"] = '\uFC62';
            map["shaddakasratanarabic"] = '\uFC5F';
            map["shade"] = '\u2592';
            map["shadedark"] = '\u2593';
            map["shadelight"] = '\u2591';
            map["shademedium"] = '\u2592';
            map["shadeva"] = '\u0936';
            map["shagujarati"] = '\u0AB6';
            map["shagurmukhi"] = '\u0A36';
            map["shalshelethebrew"] = '\u0593';
            map["shbopomofo"] = '\u3115';
            map["shchacyrillic"] = '\u0449';
            map["sheenarabic"] = '\u0634';
            map["sheenfinalarabic"] = '\uFEB6';
            map["sheeninitialarabic"] = '\uFEB7';
            map["sheenmedialarabic"] = '\uFEB8';
            map["sheicoptic"] = '\u03E3';
            map["sheqel"] = '\u20AA';
            map["sheqelhebrew"] = '\u20AA';
            map["sheva"] = '\u05B0';
            map["sheva115"] = '\u05B0';
            map["sheva15"] = '\u05B0';
            map["sheva22"] = '\u05B0';
            map["sheva2e"] = '\u05B0';
            map["shevahebrew"] = '\u05B0';
            map["shevanarrowhebrew"] = '\u05B0';
            map["shevaquarterhebrew"] = '\u05B0';
            map["shevawidehebrew"] = '\u05B0';
            map["shhacyrillic"] = '\u04BB';
            map["shimacoptic"] = '\u03ED';
            map["shin"] = '\u05E9';
            map["shindagesh"] = '\uFB49';
            map["shindageshhebrew"] = '\uFB49';
            map["shindageshshindot"] = '\uFB2C';
            map["shindageshshindothebrew"] = '\uFB2C';
            map["shindageshsindot"] = '\uFB2D';
            map["shindageshsindothebrew"] = '\uFB2D';
            map["shindothebrew"] = '\u05C1';
            map["shinhebrew"] = '\u05E9';
            map["shinshindot"] = '\uFB2A';
            map["shinshindothebrew"] = '\uFB2A';
            map["shinsindot"] = '\uFB2B';
            map["shinsindothebrew"] = '\uFB2B';
            map["shook"] = '\u0282';
            map["sigma"] = '\u03C3';
            map["sigma1"] = '\u03C2';
            map["sigmafinal"] = '\u03C2';
            map["sigmalunatesymbolgreek"] = '\u03F2';
            map["sihiragana"] = '\u3057';
            map["sikatakana"] = '\u30B7';
            map["sikatakanahalfwidth"] = '\uFF7C';
            map["siluqhebrew"] = '\u05BD';
            map["siluqlefthebrew"] = '\u05BD';
            map["similar"] = '\u223C';
            map["sindothebrew"] = '\u05C2';
            map["siosacirclekorean"] = '\u3274';
            map["siosaparenkorean"] = '\u3214';
            map["sioscieuckorean"] = '\u317E';
            map["sioscirclekorean"] = '\u3266';
            map["sioskiyeokkorean"] = '\u317A';
            map["sioskorean"] = '\u3145';
            map["siosnieunkorean"] = '\u317B';
            map["siosparenkorean"] = '\u3206';
            map["siospieupkorean"] = '\u317D';
            map["siostikeutkorean"] = '\u317C';
            map["six"] = '\u0036';
            map["sixarabic"] = '\u0666';
            map["sixbengali"] = '\u09EC';
            map["sixcircle"] = '\u2465';
            map["sixcircleinversesansserif"] = '\u278F';
            map["sixdeva"] = '\u096C';
            map["sixgujarati"] = '\u0AEC';
            map["sixgurmukhi"] = '\u0A6C';
            map["sixhackarabic"] = '\u0666';
            map["sixhangzhou"] = '\u3026';
            map["sixideographicparen"] = '\u3225';
            map["sixinferior"] = '\u2086';
            map["sixmonospace"] = '\uFF16';
            map["sixoldstyle"] = '\uF736';
            map["sixparen"] = '\u2479';
            map["sixperiod"] = '\u248D';
            map["sixpersian"] = '\u06F6';
            map["sixroman"] = '\u2175';
            map["sixsuperior"] = '\u2076';
            map["sixteencircle"] = '\u246F';
            map["sixteencurrencydenominatorbengali"] = '\u09F9';
            map["sixteenparen"] = '\u2483';
            map["sixteenperiod"] = '\u2497';
            map["sixthai"] = '\u0E56';
            map["slash"] = '\u002F';
            map["slashmonospace"] = '\uFF0F';
            map["slong"] = '\u017F';
            map["slongdotaccent"] = '\u1E9B';
            map["smileface"] = '\u263A';
            map["smonospace"] = '\uFF53';
            map["sofpasuqhebrew"] = '\u05C3';
            map["softhyphen"] = '\u00AD';
            map["softsigncyrillic"] = '\u044C';
            map["sohiragana"] = '\u305D';
            map["sokatakana"] = '\u30BD';
            map["sokatakanahalfwidth"] = '\uFF7F';
            map["soliduslongoverlaycmb"] = '\u0338';
            map["solidusshortoverlaycmb"] = '\u0337';
            map["sorusithai"] = '\u0E29';
            map["sosalathai"] = '\u0E28';
            map["sosothai"] = '\u0E0B';
            map["sosuathai"] = '\u0E2A';
            map["space"] = '\u0020';
            map["spacehackarabic"] = '\u0020';
            map["spade"] = '\u2660';
            map["spadesuitblack"] = '\u2660';
            map["spadesuitwhite"] = '\u2664';
            map["sparen"] = '\u24AE';
            map["squarebelowcmb"] = '\u033B';
            map["squarecc"] = '\u33C4';
            map["squarecm"] = '\u339D';
            map["squarediagonalcrosshatchfill"] = '\u25A9';
            map["squarehorizontalfill"] = '\u25A4';
            map["squarekg"] = '\u338F';
            map["squarekm"] = '\u339E';
            map["squarekmcapital"] = '\u33CE';
            map["squareln"] = '\u33D1';
            map["squarelog"] = '\u33D2';
            map["squaremg"] = '\u338E';
            map["squaremil"] = '\u33D5';
            map["squaremm"] = '\u339C';
            map["squaremsquared"] = '\u33A1';
            map["squareorthogonalcrosshatchfill"] = '\u25A6';
            map["squareupperlefttolowerrightfill"] = '\u25A7';
            map["squareupperrighttolowerleftfill"] = '\u25A8';
            map["squareverticalfill"] = '\u25A5';
            map["squarewhitewithsmallblack"] = '\u25A3';
            map["srsquare"] = '\u33DB';
            map["ssabengali"] = '\u09B7';
            map["ssadeva"] = '\u0937';
            map["ssagujarati"] = '\u0AB7';
            map["ssangcieuckorean"] = '\u3149';
            map["ssanghieuhkorean"] = '\u3185';
            map["ssangieungkorean"] = '\u3180';
            map["ssangkiyeokkorean"] = '\u3132';
            map["ssangnieunkorean"] = '\u3165';
            map["ssangpieupkorean"] = '\u3143';
            map["ssangsioskorean"] = '\u3146';
            map["ssangtikeutkorean"] = '\u3138';
            map["ssuperior"] = '\uF6F2';
            map["sterling"] = '\u00A3';
            map["sterlingmonospace"] = '\uFFE1';
            map["strokelongoverlaycmb"] = '\u0336';
            map["strokeshortoverlaycmb"] = '\u0335';
            map["subset"] = '\u2282';
            map["subsetnotequal"] = '\u228A';
            map["subsetorequal"] = '\u2286';
            map["succeeds"] = '\u227B';
            map["suchthat"] = '\u220B';
            map["suhiragana"] = '\u3059';
            map["sukatakana"] = '\u30B9';
            map["sukatakanahalfwidth"] = '\uFF7D';
            map["sukunarabic"] = '\u0652';
            map["summation"] = '\u2211';
            map["sun"] = '\u263C';
            map["superset"] = '\u2283';
            map["supersetnotequal"] = '\u228B';
            map["supersetorequal"] = '\u2287';
            map["svsquare"] = '\u33DC';
            map["syouwaerasquare"] = '\u337C';
            map["t"] = '\u0074';
            map["tabengali"] = '\u09A4';
            map["tackdown"] = '\u22A4';
            map["tackleft"] = '\u22A3';
            map["tadeva"] = '\u0924';
            map["tagujarati"] = '\u0AA4';
            map["tagurmukhi"] = '\u0A24';
            map["taharabic"] = '\u0637';
            map["tahfinalarabic"] = '\uFEC2';
            map["tahinitialarabic"] = '\uFEC3';
            map["tahiragana"] = '\u305F';
            map["tahmedialarabic"] = '\uFEC4';
            map["taisyouerasquare"] = '\u337D';
            map["takatakana"] = '\u30BF';
            map["takatakanahalfwidth"] = '\uFF80';
            map["tatweelarabic"] = '\u0640';
            map["tau"] = '\u03C4';
            map["tav"] = '\u05EA';
            map["tavdages"] = '\uFB4A';
            map["tavdagesh"] = '\uFB4A';
            map["tavdageshhebrew"] = '\uFB4A';
            map["tavhebrew"] = '\u05EA';
            map["tbar"] = '\u0167';
            map["tbopomofo"] = '\u310A';
            map["tcaron"] = '\u0165';
            map["tccurl"] = '\u02A8';
            map["tcedilla"] = '\u0163';
            map["tcheharabic"] = '\u0686';
            map["tchehfinalarabic"] = '\uFB7B';
            map["tchehinitialarabic"] = '\uFB7C';
            map["tchehmedialarabic"] = '\uFB7D';
            //map["tchehmeeminitialarabic"] = '\uFB7C'; // should be 'FB7C FEE4' (multiple codepoints not supported yet)
            map["tcircle"] = '\u24E3';
            map["tcircumflexbelow"] = '\u1E71';
            map["tcommaaccent"] = '\u0163';
            map["tdieresis"] = '\u1E97';
            map["tdotaccent"] = '\u1E6B';
            map["tdotbelow"] = '\u1E6D';
            map["tecyrillic"] = '\u0442';
            map["tedescendercyrillic"] = '\u04AD';
            map["teharabic"] = '\u062A';
            map["tehfinalarabic"] = '\uFE96';
            map["tehhahinitialarabic"] = '\uFCA2';
            map["tehhahisolatedarabic"] = '\uFC0C';
            map["tehinitialarabic"] = '\uFE97';
            map["tehiragana"] = '\u3066';
            map["tehjeeminitialarabic"] = '\uFCA1';
            map["tehjeemisolatedarabic"] = '\uFC0B';
            map["tehmarbutaarabic"] = '\u0629';
            map["tehmarbutafinalarabic"] = '\uFE94';
            map["tehmedialarabic"] = '\uFE98';
            map["tehmeeminitialarabic"] = '\uFCA4';
            map["tehmeemisolatedarabic"] = '\uFC0E';
            map["tehnoonfinalarabic"] = '\uFC73';
            map["tekatakana"] = '\u30C6';
            map["tekatakanahalfwidth"] = '\uFF83';
            map["telephone"] = '\u2121';
            map["telephoneblack"] = '\u260E';
            map["telishagedolahebrew"] = '\u05A0';
            map["telishaqetanahebrew"] = '\u05A9';
            map["tencircle"] = '\u2469';
            map["tenideographicparen"] = '\u3229';
            map["tenparen"] = '\u247D';
            map["tenperiod"] = '\u2491';
            map["tenroman"] = '\u2179';
            map["tesh"] = '\u02A7';
            map["tet"] = '\u05D8';
            map["tetdagesh"] = '\uFB38';
            map["tetdageshhebrew"] = '\uFB38';
            map["tethebrew"] = '\u05D8';
            map["tetsecyrillic"] = '\u04B5';
            map["tevirhebrew"] = '\u059B';
            map["tevirlefthebrew"] = '\u059B';
            map["thabengali"] = '\u09A5';
            map["thadeva"] = '\u0925';
            map["thagujarati"] = '\u0AA5';
            map["thagurmukhi"] = '\u0A25';
            map["thalarabic"] = '\u0630';
            map["thalfinalarabic"] = '\uFEAC';
            map["thanthakhatlowleftthai"] = '\uF898';
            map["thanthakhatlowrightthai"] = '\uF897';
            map["thanthakhatthai"] = '\u0E4C';
            map["thanthakhatupperleftthai"] = '\uF896';
            map["theharabic"] = '\u062B';
            map["thehfinalarabic"] = '\uFE9A';
            map["thehinitialarabic"] = '\uFE9B';
            map["thehmedialarabic"] = '\uFE9C';
            map["thereexists"] = '\u2203';
            map["therefore"] = '\u2234';
            map["theta"] = '\u03B8';
            map["theta1"] = '\u03D1';
            map["thetasymbolgreek"] = '\u03D1';
            map["thieuthacirclekorean"] = '\u3279';
            map["thieuthaparenkorean"] = '\u3219';
            map["thieuthcirclekorean"] = '\u326B';
            map["thieuthkorean"] = '\u314C';
            map["thieuthparenkorean"] = '\u320B';
            map["thirteencircle"] = '\u246C';
            map["thirteenparen"] = '\u2480';
            map["thirteenperiod"] = '\u2494';
            map["thonangmonthothai"] = '\u0E11';
            map["thook"] = '\u01AD';
            map["thophuthaothai"] = '\u0E12';
            map["thorn"] = '\u00FE';
            map["thothahanthai"] = '\u0E17';
            map["thothanthai"] = '\u0E10';
            map["thothongthai"] = '\u0E18';
            map["thothungthai"] = '\u0E16';
            map["thousandcyrillic"] = '\u0482';
            map["thousandsseparatorarabic"] = '\u066C';
            map["thousandsseparatorpersian"] = '\u066C';
            map["three"] = '\u0033';
            map["threearabic"] = '\u0663';
            map["threebengali"] = '\u09E9';
            map["threecircle"] = '\u2462';
            map["threecircleinversesansserif"] = '\u278C';
            map["threedeva"] = '\u0969';
            map["threeeighths"] = '\u215C';
            map["threegujarati"] = '\u0AE9';
            map["threegurmukhi"] = '\u0A69';
            map["threehackarabic"] = '\u0663';
            map["threehangzhou"] = '\u3023';
            map["threeideographicparen"] = '\u3222';
            map["threeinferior"] = '\u2083';
            map["threemonospace"] = '\uFF13';
            map["threenumeratorbengali"] = '\u09F6';
            map["threeoldstyle"] = '\uF733';
            map["threeparen"] = '\u2476';
            map["threeperiod"] = '\u248A';
            map["threepersian"] = '\u06F3';
            map["threequarters"] = '\u00BE';
            map["threequartersemdash"] = '\uF6DE';
            map["threeroman"] = '\u2172';
            map["threesuperior"] = '\u00B3';
            map["threethai"] = '\u0E53';
            map["thzsquare"] = '\u3394';
            map["tihiragana"] = '\u3061';
            map["tikatakana"] = '\u30C1';
            map["tikatakanahalfwidth"] = '\uFF81';
            map["tikeutacirclekorean"] = '\u3270';
            map["tikeutaparenkorean"] = '\u3210';
            map["tikeutcirclekorean"] = '\u3262';
            map["tikeutkorean"] = '\u3137';
            map["tikeutparenkorean"] = '\u3202';
            map["tilde"] = '\u02DC';
            map["tildebelowcmb"] = '\u0330';
            map["tildecmb"] = '\u0303';
            map["tildecomb"] = '\u0303';
            map["tildedoublecmb"] = '\u0360';
            map["tildeoperator"] = '\u223C';
            map["tildeoverlaycmb"] = '\u0334';
            map["tildeverticalcmb"] = '\u033E';
            map["timescircle"] = '\u2297';
            map["tipehahebrew"] = '\u0596';
            map["tipehalefthebrew"] = '\u0596';
            map["tippigurmukhi"] = '\u0A70';
            map["titlocyrilliccmb"] = '\u0483';
            map["tiwnarmenian"] = '\u057F';
            map["tlinebelow"] = '\u1E6F';
            map["tmonospace"] = '\uFF54';
            map["toarmenian"] = '\u0569';
            map["tohiragana"] = '\u3068';
            map["tokatakana"] = '\u30C8';
            map["tokatakanahalfwidth"] = '\uFF84';
            map["tonebarextrahighmod"] = '\u02E5';
            map["tonebarextralowmod"] = '\u02E9';
            map["tonebarhighmod"] = '\u02E6';
            map["tonebarlowmod"] = '\u02E8';
            map["tonebarmidmod"] = '\u02E7';
            map["tonefive"] = '\u01BD';
            map["tonesix"] = '\u0185';
            map["tonetwo"] = '\u01A8';
            map["tonos"] = '\u0384';
            map["tonsquare"] = '\u3327';
            map["topatakthai"] = '\u0E0F';
            map["tortoiseshellbracketleft"] = '\u3014';
            map["tortoiseshellbracketleftsmall"] = '\uFE5D';
            map["tortoiseshellbracketleftvertical"] = '\uFE39';
            map["tortoiseshellbracketright"] = '\u3015';
            map["tortoiseshellbracketrightsmall"] = '\uFE5E';
            map["tortoiseshellbracketrightvertical"] = '\uFE3A';
            map["totaothai"] = '\u0E15';
            map["tpalatalhook"] = '\u01AB';
            map["tparen"] = '\u24AF';
            map["trademark"] = '\u2122';
            map["trademarksans"] = '\uF8EA';
            map["trademarkserif"] = '\uF6DB';
            map["tretroflexhook"] = '\u0288';
            map["triagdn"] = '\u25BC';
            map["triaglf"] = '\u25C4';
            map["triagrt"] = '\u25BA';
            map["triagup"] = '\u25B2';
            map["ts"] = '\u02A6';
            map["tsadi"] = '\u05E6';
            map["tsadidagesh"] = '\uFB46';
            map["tsadidageshhebrew"] = '\uFB46';
            map["tsadihebrew"] = '\u05E6';
            map["tsecyrillic"] = '\u0446';
            map["tsere"] = '\u05B5';
            map["tsere12"] = '\u05B5';
            map["tsere1e"] = '\u05B5';
            map["tsere2b"] = '\u05B5';
            map["tserehebrew"] = '\u05B5';
            map["tserenarrowhebrew"] = '\u05B5';
            map["tserequarterhebrew"] = '\u05B5';
            map["tserewidehebrew"] = '\u05B5';
            map["tshecyrillic"] = '\u045B';
            map["tsuperior"] = '\uF6F3';
            map["ttabengali"] = '\u099F';
            map["ttadeva"] = '\u091F';
            map["ttagujarati"] = '\u0A9F';
            map["ttagurmukhi"] = '\u0A1F';
            map["tteharabic"] = '\u0679';
            map["ttehfinalarabic"] = '\uFB67';
            map["ttehinitialarabic"] = '\uFB68';
            map["ttehmedialarabic"] = '\uFB69';
            map["tthabengali"] = '\u09A0';
            map["tthadeva"] = '\u0920';
            map["tthagujarati"] = '\u0AA0';
            map["tthagurmukhi"] = '\u0A20';
            map["tturned"] = '\u0287';
            map["tuhiragana"] = '\u3064';
            map["tukatakana"] = '\u30C4';
            map["tukatakanahalfwidth"] = '\uFF82';
            map["tusmallhiragana"] = '\u3063';
            map["tusmallkatakana"] = '\u30C3';
            map["tusmallkatakanahalfwidth"] = '\uFF6F';
            map["twelvecircle"] = '\u246B';
            map["twelveparen"] = '\u247F';
            map["twelveperiod"] = '\u2493';
            map["twelveroman"] = '\u217B';
            map["twentycircle"] = '\u2473';
            map["twentyhangzhou"] = '\u5344';
            map["twentyparen"] = '\u2487';
            map["twentyperiod"] = '\u249B';
            map["two"] = '\u0032';
            map["twoarabic"] = '\u0662';
            map["twobengali"] = '\u09E8';
            map["twocircle"] = '\u2461';
            map["twocircleinversesansserif"] = '\u278B';
            map["twodeva"] = '\u0968';
            map["twodotenleader"] = '\u2025';
            map["twodotleader"] = '\u2025';
            map["twodotleadervertical"] = '\uFE30';
            map["twogujarati"] = '\u0AE8';
            map["twogurmukhi"] = '\u0A68';
            map["twohackarabic"] = '\u0662';
            map["twohangzhou"] = '\u3022';
            map["twoideographicparen"] = '\u3221';
            map["twoinferior"] = '\u2082';
            map["twomonospace"] = '\uFF12';
            map["twonumeratorbengali"] = '\u09F5';
            map["twooldstyle"] = '\uF732';
            map["twoparen"] = '\u2475';
            map["twoperiod"] = '\u2489';
            map["twopersian"] = '\u06F2';
            map["tworoman"] = '\u2171';
            map["twostroke"] = '\u01BB';
            map["twosuperior"] = '\u00B2';
            map["twothai"] = '\u0E52';
            map["twothirds"] = '\u2154';
            map["u"] = '\u0075';
            map["uacute"] = '\u00FA';
            map["ubar"] = '\u0289';
            map["ubengali"] = '\u0989';
            map["ubopomofo"] = '\u3128';
            map["ubreve"] = '\u016D';
            map["ucaron"] = '\u01D4';
            map["ucircle"] = '\u24E4';
            map["ucircumflex"] = '\u00FB';
            map["ucircumflexbelow"] = '\u1E77';
            map["ucyrillic"] = '\u0443';
            map["udattadeva"] = '\u0951';
            map["udblacute"] = '\u0171';
            map["udblgrave"] = '\u0215';
            map["udeva"] = '\u0909';
            map["udieresis"] = '\u00FC';
            map["udieresisacute"] = '\u01D8';
            map["udieresisbelow"] = '\u1E73';
            map["udieresiscaron"] = '\u01DA';
            map["udieresiscyrillic"] = '\u04F1';
            map["udieresisgrave"] = '\u01DC';
            map["udieresismacron"] = '\u01D6';
            map["udotbelow"] = '\u1EE5';
            map["ugrave"] = '\u00F9';
            map["ugujarati"] = '\u0A89';
            map["ugurmukhi"] = '\u0A09';
            map["uhiragana"] = '\u3046';
            map["uhookabove"] = '\u1EE7';
            map["uhorn"] = '\u01B0';
            map["uhornacute"] = '\u1EE9';
            map["uhorndotbelow"] = '\u1EF1';
            map["uhorngrave"] = '\u1EEB';
            map["uhornhookabove"] = '\u1EED';
            map["uhorntilde"] = '\u1EEF';
            map["uhungarumlaut"] = '\u0171';
            map["uhungarumlautcyrillic"] = '\u04F3';
            map["uinvertedbreve"] = '\u0217';
            map["ukatakana"] = '\u30A6';
            map["ukatakanahalfwidth"] = '\uFF73';
            map["ukcyrillic"] = '\u0479';
            map["ukorean"] = '\u315C';
            map["umacron"] = '\u016B';
            map["umacroncyrillic"] = '\u04EF';
            map["umacrondieresis"] = '\u1E7B';
            map["umatragurmukhi"] = '\u0A41';
            map["umonospace"] = '\uFF55';
            map["underscore"] = '\u005F';
            map["underscoredbl"] = '\u2017';
            map["underscoremonospace"] = '\uFF3F';
            map["underscorevertical"] = '\uFE33';
            map["underscorewavy"] = '\uFE4F';
            map["union"] = '\u222A';
            map["universal"] = '\u2200';
            map["uogonek"] = '\u0173';
            map["uparen"] = '\u24B0';
            map["upblock"] = '\u2580';
            map["upperdothebrew"] = '\u05C4';
            map["upsilon"] = '\u03C5';
            map["upsilondieresis"] = '\u03CB';
            map["upsilondieresistonos"] = '\u03B0';
            map["upsilonlatin"] = '\u028A';
            map["upsilontonos"] = '\u03CD';
            map["uptackbelowcmb"] = '\u031D';
            map["uptackmod"] = '\u02D4';
            map["uragurmukhi"] = '\u0A73';
            map["uring"] = '\u016F';
            map["ushortcyrillic"] = '\u045E';
            map["usmallhiragana"] = '\u3045';
            map["usmallkatakana"] = '\u30A5';
            map["usmallkatakanahalfwidth"] = '\uFF69';
            map["ustraightcyrillic"] = '\u04AF';
            map["ustraightstrokecyrillic"] = '\u04B1';
            map["utilde"] = '\u0169';
            map["utildeacute"] = '\u1E79';
            map["utildebelow"] = '\u1E75';
            map["uubengali"] = '\u098A';
            map["uudeva"] = '\u090A';
            map["uugujarati"] = '\u0A8A';
            map["uugurmukhi"] = '\u0A0A';
            map["uumatragurmukhi"] = '\u0A42';
            map["uuvowelsignbengali"] = '\u09C2';
            map["uuvowelsigndeva"] = '\u0942';
            map["uuvowelsigngujarati"] = '\u0AC2';
            map["uvowelsignbengali"] = '\u09C1';
            map["uvowelsigndeva"] = '\u0941';
            map["uvowelsigngujarati"] = '\u0AC1';
            map["v"] = '\u0076';
            map["vadeva"] = '\u0935';
            map["vagujarati"] = '\u0AB5';
            map["vagurmukhi"] = '\u0A35';
            map["vakatakana"] = '\u30F7';
            map["vav"] = '\u05D5';
            map["vavdagesh"] = '\uFB35';
            map["vavdagesh65"] = '\uFB35';
            map["vavdageshhebrew"] = '\uFB35';
            map["vavhebrew"] = '\u05D5';
            map["vavholam"] = '\uFB4B';
            map["vavholamhebrew"] = '\uFB4B';
            map["vavvavhebrew"] = '\u05F0';
            map["vavyodhebrew"] = '\u05F1';
            map["vcircle"] = '\u24E5';
            map["vdotbelow"] = '\u1E7F';
            map["vecyrillic"] = '\u0432';
            map["veharabic"] = '\u06A4';
            map["vehfinalarabic"] = '\uFB6B';
            map["vehinitialarabic"] = '\uFB6C';
            map["vehmedialarabic"] = '\uFB6D';
            map["vekatakana"] = '\u30F9';
            map["venus"] = '\u2640';
            map["verticalbar"] = '\u007C';
            map["verticallineabovecmb"] = '\u030D';
            map["verticallinebelowcmb"] = '\u0329';
            map["verticallinelowmod"] = '\u02CC';
            map["verticallinemod"] = '\u02C8';
            map["vewarmenian"] = '\u057E';
            map["vhook"] = '\u028B';
            map["vikatakana"] = '\u30F8';
            map["viramabengali"] = '\u09CD';
            map["viramadeva"] = '\u094D';
            map["viramagujarati"] = '\u0ACD';
            map["visargabengali"] = '\u0983';
            map["visargadeva"] = '\u0903';
            map["visargagujarati"] = '\u0A83';
            map["vmonospace"] = '\uFF56';
            map["voarmenian"] = '\u0578';
            map["voicediterationhiragana"] = '\u309E';
            map["voicediterationkatakana"] = '\u30FE';
            map["voicedmarkkana"] = '\u309B';
            map["voicedmarkkanahalfwidth"] = '\uFF9E';
            map["vokatakana"] = '\u30FA';
            map["vparen"] = '\u24B1';
            map["vtilde"] = '\u1E7D';
            map["vturned"] = '\u028C';
            map["vuhiragana"] = '\u3094';
            map["vukatakana"] = '\u30F4';
            map["w"] = '\u0077';
            map["wacute"] = '\u1E83';
            map["waekorean"] = '\u3159';
            map["wahiragana"] = '\u308F';
            map["wakatakana"] = '\u30EF';
            map["wakatakanahalfwidth"] = '\uFF9C';
            map["wakorean"] = '\u3158';
            map["wasmallhiragana"] = '\u308E';
            map["wasmallkatakana"] = '\u30EE';
            map["wattosquare"] = '\u3357';
            map["wavedash"] = '\u301C';
            map["wavyunderscorevertical"] = '\uFE34';
            map["wawarabic"] = '\u0648';
            map["wawfinalarabic"] = '\uFEEE';
            map["wawhamzaabovearabic"] = '\u0624';
            map["wawhamzaabovefinalarabic"] = '\uFE86';
            map["wbsquare"] = '\u33DD';
            map["wcircle"] = '\u24E6';
            map["wcircumflex"] = '\u0175';
            map["wdieresis"] = '\u1E85';
            map["wdotaccent"] = '\u1E87';
            map["wdotbelow"] = '\u1E89';
            map["wehiragana"] = '\u3091';
            map["weierstrass"] = '\u2118';
            map["wekatakana"] = '\u30F1';
            map["wekorean"] = '\u315E';
            map["weokorean"] = '\u315D';
            map["wgrave"] = '\u1E81';
            map["whitebullet"] = '\u25E6';
            map["whitecircle"] = '\u25CB';
            map["whitecircleinverse"] = '\u25D9';
            map["whitecornerbracketleft"] = '\u300E';
            map["whitecornerbracketleftvertical"] = '\uFE43';
            map["whitecornerbracketright"] = '\u300F';
            map["whitecornerbracketrightvertical"] = '\uFE44';
            map["whitediamond"] = '\u25C7';
            map["whitediamondcontainingblacksmalldiamond"] = '\u25C8';
            map["whitedownpointingsmalltriangle"] = '\u25BF';
            map["whitedownpointingtriangle"] = '\u25BD';
            map["whiteleftpointingsmalltriangle"] = '\u25C3';
            map["whiteleftpointingtriangle"] = '\u25C1';
            map["whitelenticularbracketleft"] = '\u3016';
            map["whitelenticularbracketright"] = '\u3017';
            map["whiterightpointingsmalltriangle"] = '\u25B9';
            map["whiterightpointingtriangle"] = '\u25B7';
            map["whitesmallsquare"] = '\u25AB';
            map["whitesmilingface"] = '\u263A';
            map["whitesquare"] = '\u25A1';
            map["whitestar"] = '\u2606';
            map["whitetelephone"] = '\u260F';
            map["whitetortoiseshellbracketleft"] = '\u3018';
            map["whitetortoiseshellbracketright"] = '\u3019';
            map["whiteuppointingsmalltriangle"] = '\u25B5';
            map["whiteuppointingtriangle"] = '\u25B3';
            map["wihiragana"] = '\u3090';
            map["wikatakana"] = '\u30F0';
            map["wikorean"] = '\u315F';
            map["wmonospace"] = '\uFF57';
            map["wohiragana"] = '\u3092';
            map["wokatakana"] = '\u30F2';
            map["wokatakanahalfwidth"] = '\uFF66';
            map["won"] = '\u20A9';
            map["wonmonospace"] = '\uFFE6';
            map["wowaenthai"] = '\u0E27';
            map["wparen"] = '\u24B2';
            map["wring"] = '\u1E98';
            map["wsuperior"] = '\u02B7';
            map["wturned"] = '\u028D';
            map["wynn"] = '\u01BF';
            map["x"] = '\u0078';
            map["xabovecmb"] = '\u033D';
            map["xbopomofo"] = '\u3112';
            map["xcircle"] = '\u24E7';
            map["xdieresis"] = '\u1E8D';
            map["xdotaccent"] = '\u1E8B';
            map["xeharmenian"] = '\u056D';
            map["xi"] = '\u03BE';
            map["xmonospace"] = '\uFF58';
            map["xparen"] = '\u24B3';
            map["xsuperior"] = '\u02E3';
            map["y"] = '\u0079';
            map["yaadosquare"] = '\u334E';
            map["yabengali"] = '\u09AF';
            map["yacute"] = '\u00FD';
            map["yadeva"] = '\u092F';
            map["yaekorean"] = '\u3152';
            map["yagujarati"] = '\u0AAF';
            map["yagurmukhi"] = '\u0A2F';
            map["yahiragana"] = '\u3084';
            map["yakatakana"] = '\u30E4';
            map["yakatakanahalfwidth"] = '\uFF94';
            map["yakorean"] = '\u3151';
            map["yamakkanthai"] = '\u0E4E';
            map["yasmallhiragana"] = '\u3083';
            map["yasmallkatakana"] = '\u30E3';
            map["yasmallkatakanahalfwidth"] = '\uFF6C';
            map["yatcyrillic"] = '\u0463';
            map["ycircle"] = '\u24E8';
            map["ycircumflex"] = '\u0177';
            map["ydieresis"] = '\u00FF';
            map["ydotaccent"] = '\u1E8F';
            map["ydotbelow"] = '\u1EF5';
            map["yeharabic"] = '\u064A';
            map["yehbarreearabic"] = '\u06D2';
            map["yehbarreefinalarabic"] = '\uFBAF';
            map["yehfinalarabic"] = '\uFEF2';
            map["yehhamzaabovearabic"] = '\u0626';
            map["yehhamzaabovefinalarabic"] = '\uFE8A';
            map["yehhamzaaboveinitialarabic"] = '\uFE8B';
            map["yehhamzaabovemedialarabic"] = '\uFE8C';
            map["yehinitialarabic"] = '\uFEF3';
            map["yehmedialarabic"] = '\uFEF4';
            map["yehmeeminitialarabic"] = '\uFCDD';
            map["yehmeemisolatedarabic"] = '\uFC58';
            map["yehnoonfinalarabic"] = '\uFC94';
            map["yehthreedotsbelowarabic"] = '\u06D1';
            map["yekorean"] = '\u3156';
            map["yen"] = '\u00A5';
            map["yenmonospace"] = '\uFFE5';
            map["yeokorean"] = '\u3155';
            map["yeorinhieuhkorean"] = '\u3186';
            map["yerahbenyomohebrew"] = '\u05AA';
            map["yerahbenyomolefthebrew"] = '\u05AA';
            map["yericyrillic"] = '\u044B';
            map["yerudieresiscyrillic"] = '\u04F9';
            map["yesieungkorean"] = '\u3181';
            map["yesieungpansioskorean"] = '\u3183';
            map["yesieungsioskorean"] = '\u3182';
            map["yetivhebrew"] = '\u059A';
            map["ygrave"] = '\u1EF3';
            map["yhook"] = '\u01B4';
            map["yhookabove"] = '\u1EF7';
            map["yiarmenian"] = '\u0575';
            map["yicyrillic"] = '\u0457';
            map["yikorean"] = '\u3162';
            map["yinyang"] = '\u262F';
            map["yiwnarmenian"] = '\u0582';
            map["ymonospace"] = '\uFF59';
            map["yod"] = '\u05D9';
            map["yoddagesh"] = '\uFB39';
            map["yoddageshhebrew"] = '\uFB39';
            map["yodhebrew"] = '\u05D9';
            map["yodyodhebrew"] = '\u05F2';
            map["yodyodpatahhebrew"] = '\uFB1F';
            map["yohiragana"] = '\u3088';
            map["yoikorean"] = '\u3189';
            map["yokatakana"] = '\u30E8';
            map["yokatakanahalfwidth"] = '\uFF96';
            map["yokorean"] = '\u315B';
            map["yosmallhiragana"] = '\u3087';
            map["yosmallkatakana"] = '\u30E7';
            map["yosmallkatakanahalfwidth"] = '\uFF6E';
            map["yotgreek"] = '\u03F3';
            map["yoyaekorean"] = '\u3188';
            map["yoyakorean"] = '\u3187';
            map["yoyakthai"] = '\u0E22';
            map["yoyingthai"] = '\u0E0D';
            map["yparen"] = '\u24B4';
            map["ypogegrammeni"] = '\u037A';
            map["ypogegrammenigreekcmb"] = '\u0345';
            map["yr"] = '\u01A6';
            map["yring"] = '\u1E99';
            map["ysuperior"] = '\u02B8';
            map["ytilde"] = '\u1EF9';
            map["yturned"] = '\u028E';
            map["yuhiragana"] = '\u3086';
            map["yuikorean"] = '\u318C';
            map["yukatakana"] = '\u30E6';
            map["yukatakanahalfwidth"] = '\uFF95';
            map["yukorean"] = '\u3160';
            map["yusbigcyrillic"] = '\u046B';
            map["yusbigiotifiedcyrillic"] = '\u046D';
            map["yuslittlecyrillic"] = '\u0467';
            map["yuslittleiotifiedcyrillic"] = '\u0469';
            map["yusmallhiragana"] = '\u3085';
            map["yusmallkatakana"] = '\u30E5';
            map["yusmallkatakanahalfwidth"] = '\uFF6D';
            map["yuyekorean"] = '\u318B';
            map["yuyeokorean"] = '\u318A';
            map["yyabengali"] = '\u09DF';
            map["yyadeva"] = '\u095F';
            map["z"] = '\u007A';
            map["zaarmenian"] = '\u0566';
            map["zacute"] = '\u017A';
            map["zadeva"] = '\u095B';
            map["zagurmukhi"] = '\u0A5B';
            map["zaharabic"] = '\u0638';
            map["zahfinalarabic"] = '\uFEC6';
            map["zahinitialarabic"] = '\uFEC7';
            map["zahiragana"] = '\u3056';
            map["zahmedialarabic"] = '\uFEC8';
            map["zainarabic"] = '\u0632';
            map["zainfinalarabic"] = '\uFEB0';
            map["zakatakana"] = '\u30B6';
            map["zaqefgadolhebrew"] = '\u0595';
            map["zaqefqatanhebrew"] = '\u0594';
            map["zarqahebrew"] = '\u0598';
            map["zayin"] = '\u05D6';
            map["zayindagesh"] = '\uFB36';
            map["zayindageshhebrew"] = '\uFB36';
            map["zayinhebrew"] = '\u05D6';
            map["zbopomofo"] = '\u3117';
            map["zcaron"] = '\u017E';
            map["zcircle"] = '\u24E9';
            map["zcircumflex"] = '\u1E91';
            map["zcurl"] = '\u0291';
            map["zdot"] = '\u017C';
            map["zdotaccent"] = '\u017C';
            map["zdotbelow"] = '\u1E93';
            map["zecyrillic"] = '\u0437';
            map["zedescendercyrillic"] = '\u0499';
            map["zedieresiscyrillic"] = '\u04DF';
            map["zehiragana"] = '\u305C';
            map["zekatakana"] = '\u30BC';
            map["zero"] = '\u0030';
            map["zeroarabic"] = '\u0660';
            map["zerobengali"] = '\u09E6';
            map["zerodeva"] = '\u0966';
            map["zerogujarati"] = '\u0AE6';
            map["zerogurmukhi"] = '\u0A66';
            map["zerohackarabic"] = '\u0660';
            map["zeroinferior"] = '\u2080';
            map["zeromonospace"] = '\uFF10';
            map["zerooldstyle"] = '\uF730';
            map["zeropersian"] = '\u06F0';
            map["zerosuperior"] = '\u2070';
            map["zerothai"] = '\u0E50';
            map["zerowidthjoiner"] = '\uFEFF';
            map["zerowidthnonjoiner"] = '\u200C';
            map["zerowidthspace"] = '\u200B';
            map["zeta"] = '\u03B6';
            map["zhbopomofo"] = '\u3113';
            map["zhearmenian"] = '\u056A';
            map["zhebrevecyrillic"] = '\u04C2';
            map["zhecyrillic"] = '\u0436';
            map["zhedescendercyrillic"] = '\u0497';
            map["zhedieresiscyrillic"] = '\u04DD';
            map["zihiragana"] = '\u3058';
            map["zikatakana"] = '\u30B8';
            map["zinorhebrew"] = '\u05AE';
            map["zlinebelow"] = '\u1E95';
            map["zmonospace"] = '\uFF5A';
            map["zohiragana"] = '\u305E';
            map["zokatakana"] = '\u30BE';
            map["zparen"] = '\u24B5';
            map["zretroflexhook"] = '\u0290';
            map["zstroke"] = '\u01B6';
            map["zuhiragana"] = '\u305A';
            map["zukatakana"] = '\u30BA';

            return map;
        }

        /// <summary>
        /// Gets the Unicode code point for specified glyph name.
        /// </summary>
        /// <param name="glyphName">Name of the glyph.</param>
        /// <param name="c">The c.</param>
        /// <returns></returns>
        public static bool TryGetCodePoint(string glyphName, out char c)
        {
            return map.TryGetValue(glyphName, out c);
        }
    }
}
